dポイントプレゼントキャンペーン実施中!

リソースエディタで作成したダイアログボックスの中のエディットボックスで、
Ctrl+Aで全範囲選択をしたいのですが実現方法が分かりません。

同様に、リストビューの選択行を「Delキー」で削除させる方法も教えていただきたいです。
(削除ボタンを作成し、その押下によって削除できるようにはなっています。)

環境は、VC++ 6.0、Win32 APIです。

よろしくお願い致します。

A 回答 (2件)

★WM_COMMAND ではないです。


・『CTRL+A』の検出は WM_KEYDOWN で『CTRL』の押し下げと『A』キーの押し下げを
 チェックすれば良いです。なのでサブクラス化したときの WM_COMMAND ではなくて
 WM_KEYDOWN という事ですから ID というよりは仮想キーコードをチェックします。
・次のリンクを参考にして下さい。
 http://wisdom.sakura.ne.jp/system/winapi/win32/w …→『キーボードイベント』
 http://wisdom.sakura.ne.jp/system/winapi/win32/w …→『仮想キーの状態』
>同様に、リストビューの選択行を「Delキー」で削除させる方法も教えていただきたいです。
 ↑
 こちらもサブクラス化したときに『DEL』キーを WM_KEYDOWN メッセージで処理します。
 『DEL』キーの仮想キーコードは VK_DELETE です。
 『INS』キーの仮想キーコードは VK_INSERT となります。
 あと『A』から『Z』はそのまま文字コードで 'A'から'Z'とします。
 決して VK_A ~ VK_Z があるわけではありません。注意!
・以上。

参考URL:http://wisdom.sakura.ne.jp/system/winapi/win32/w …

この回答への補足

お世話になっております。
お陰さまで、目的の機能を実現することができました。
本当にありがとうございました。

ところで話は変わってしまうのですが、この質問以外で現在私が投稿しているものがありまして
まだ解決していない状況です。

大変図々しいお願いかとは思いますが、もしお時間が許されるようでしたら、
お暇なときで結構ですのでアドバイスを頂けたら幸いです。
プログラミングに非常に精通していらっしゃるOh-Orangeのご意見・アドバイスを伺いたい次第です。
URLはhttp://oshiete.nikkeibp.co.jp/qa3184828.htmlです。

何卒、よろしくお願い致します。

不適切な発言でしたら、大変申し訳ありませんでした。

補足日時:2007/07/26 01:01
    • good
    • 0
この回答へのお礼

とても分かりやすい回答ありがとうございます。

これでなんとか出来そうです。

ありがとうございました。

お礼日時:2007/07/21 23:50

★両方ともサブクラス化などで出来そうですね。


・サブクラス化したプロシージャの中で『CTRL+A』を検出してその動作に
 『すべて選択』の機能を追加します。
 EM_SETSEL ですべて選択させることが出来ます。
 SendMessage()、PostMessage() などでエディットボックスに送りましょう。
・短いですが以上です。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

大筋は分かりました。
基本的なことで申し訳ないのですが『CTRL+A』の検出というのはどのように行えばよいのでしょうか。
WM_COMMAND:などで捕まえればいいのでしょうか。
その際のIDは何になるのでしょうか。

お礼日時:2007/07/20 18:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!