DLLのモードレス ダイアログ ボックスに全角文字を入力するには?

解決


ポン太  2007-08-23 07:01:18  No: 66084

DLLのモードレス ダイアログ ボックスで、 Tab キーを捕捉するために、
以下のサイトを参考にして実装しました。
http://support.microsoft.com/kb/233263/ja

捕捉はできましたが、今度はエディットコントロール等に
全角文字が入力できなくなりました。
症状としては、「あ」を入力すると、「82 A0」のうち後半の「A0」
しかメッセージが届いていないみたいでした。

フック関数の引数を調べたところ
MSG 構造体
message = WM_CHAR 
lParam  = A0
は届いているが、
message = WM_CHAR 
lParam  = 82
は、届いていませんでした。

強制的に二つのメッセージをIsDialogMessageに渡したところ、
エディットコントロールに「あ」は表示されました。

DLLのモードレス ダイアログ ボックスに全角文字を入力する方法を
教えていただけないでしょうか?


wclrp ( 'o')  2007-08-23 18:03:30  No: 66085

推測ですけど余計なことをされてしまったということですね。
TabキーのときだけIsDialogMessageを適用するということで
解決しないのでしょうか。

[余談/雑談]
メッセージポンプってEXEにあるからDLLでは手が出せないってことか。
EXEもDLLも同じバージョンのMFCのDLL版を利用する形式だったら
DLLでのウィンドウのPreTransMessageってよばれなかったっけ?


ポン太  2007-08-24 04:45:42  No: 66086

wclrp ( 'o')様
テストアプリは、(MFCのexeからDLLをよびだす)
TabキーのときだけIsDialogMessageを適用するだけで
解決しました。
ありがとうございました。

実際には、ExcelからDLLを呼び出すDLLを作成しています。
この場合、IsDialogMessageを適応しないと英数字すら
書き込めないみたいです。
質問の内容が変わったので新規スレッドを立てたいと思います。


ポン太  2007-08-24 05:25:59  No: 66087

新たな問題点のスレッドです。

http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200708/07080033.txt


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加