トップページ > 過去ログ > 記事閲覧
DXライブラリでダイアログのエディットボックスの件
名前:TKOZ 日時: 2008/09/04 18:51

管理人様、DXライブラリでゲームプログラミングを 楽しませてもらってます。 前回、通さんに、ダイアログボックスに エディットボックスを貼り付けて、表示し、文字列を取得する方法を教えてもらったのですが、 問題点が発生しました。 その1 OKボタンやキャンセルボタンを押しても 反応しない。 その2 日本語入力ができない(全角入力が出来ない) どうすれば、上の2点を修正できますでしょうか? ご教授お願いします。

Page: 1 |

Re: DXライブラリでダイアログのエディットボックスの件 ( No.1 )
名前: 日時:2008/09/05 22:14

>OKボタンやキャンセルボタンを押しても反応しない。 反応するようにプロシージャ書かないといけません >日本語入力ができない(全角入力が出来ない) DXライブラリではIMEとか使えた気がします。
Re: DXライブラリでダイアログのエディットボックスの件 ( No.2 )
名前:TKOZ 日時:2008/09/06 16:07

問題その1を解決しようと思い、下のように プログラムを修正したのですが、エディットボックス 中にカーソルでクリックするとダイアログボックスが 消えてしまいました。 /*----------------------------------------------------------------* * ダイアログプロシージャ *----------------------------------------------------------------*/ LRESULT CALLBACK DialogProc( HWND hWnd, UINT uMsg, UINT wParam, LONG lParam) { switch(uMsg) { case WM_COMMAND: switch(wParam) { MSGDISPATCH(IDOK,OnClose); } MSGDISPATCH(WM_CLOSE,OnClose); } return 0; } >DXライブラリでは、IMEとか使えた気がします。 関数リファレンスをよく見たのですが、 どれもエディットボックスに入力するための 関数ではないように思えます。
Re: DXライブラリでダイアログのエディットボックスの件 ( No.3 )
名前: 日時:2008/09/06 16:37

>case WM_COMMAND: > switch(wParam) > { >   MSGDISPATCH(IDOK,OnClose); > } >MSGDISPATCH(WM_CLOSE,OnClose); WM_COMMANDがbreakされてません。 MSGDISPATCH(IDOK,OnClose);を 処理した後、MSGDISPATCH(WM_CLOSE,OnClose);が 処理されているのではないですか? >関数リファレンスをよく見たのですが、 言い方が悪かったですね。 IMEを併用することが出来たのではないか という意味です。DXライブラリが実装している IMEの機能を使うという意味では有りません。 親のダイアログはDXライブラリに登録されて、 いますがエディットボックスのハンドルは DXライブラリ側に登録されていないので、 自力でIDからウィンドウハンドルを処理するしか 無いように思います。 #やったこと無いので実はDXライブラリの関数でも #出来るのかも知れませんが。。。
Re: DXライブラリでダイアログのエディットボックスの件 ( No.4 )
名前:優柔不断 日時:2008/09/07 00:56

Dxライブラリでは、IMEがデフォルトでoffになっています。 これをonにするには、SetUseIMEFlag()関数にTRUEを渡せばいいはずです。
Re: DXライブラリでダイアログのエディットボックスの件 ( No.5 )
名前:TKOZ 日時:2008/09/07 14:39

初めまして、優柔不断さん >Dxライブラリでは、IMEがデフォルトでoffになっています。 >これをonにするには、SetUseIMEFlag()関数にTRUEを渡せばいいはずです。 なんとか、うまくいきました。ありがとうございます。

Page: 1 |