はじめまして、初めて投稿させていただきます。
SDKでツールを作っているのですが、
エディットコントロールに初期値が入っていまして、
このエディットコントロールをクリックするなどして、フォーカスが来たとき、
入力されている文字列をすべて選択状態にしたいのですがどのようにしたらよいのでしょ
う?
初歩的な質問で申し訳ありませんが、よろしくお願いします。
開発環境は以下のとおりです。
WindowsXP Professional
Microsoft Visual C++6.0 Professional
MFC未使用
WM_SETFOCUS と EM_SETSEL を調べてみてください。
回答ありがとうございます。
WM_SETFOCUS と EM_SETSELを使って、タブキーなどでフォーカスを移動したときには
全選択状態になったのですが、エディットコントロールがクリックされたことによって
フォーカスを得たときには選択状態にすることができませんでした。
WM_SETFOCUS でやるのは早すぎるのです。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200411/04110015.txt
私もそのような動作をさせたかったので、結局WM_CAPTURECHANGEDを捕まえて、EM_SETSEL
しました。
試してはいないのですが、1行入力であればSimple combo boxを使ったほうが、希望の動
作に近いのかなと思ってます。
dairygoodsさん、tafuさんレスありがとうございます。
dairygooodsさんのサブクラス化なのですが、MFCを使っておらず、また、クラス化もして
いないので、よくわかりませんでした^^;
tafuさんのWM_CAPTURECHANGEDを捕まえる方法でやったらうまくできました。
ありがとうございます。
もう解決したようですが、補足。
何もサブクラス化はMFC限定用語ではありません。
SDKでもサブクラス化は普通に行います。
# むしろMFCでのサブクラス化はよく知らなかったり・・・
この場合は、Editコントロールの標準の動作を変えるために、
Editコントロールを継承した独自の振る舞いを定義する、
といえばわかりやすいでしょうか。