エディットコントロールにフォーカスがきたら、全選択にしたい

[戻る]
Dir 2006/03/24(金) 01:31:47
はじめまして、初めて投稿させていただきます。
SDKでツールを作っているのですが、
エディットコントロールに初期値が入っていまして、
このエディットコントロールをクリックするなどして、フォーカスが来たとき、
入力されている文字列をすべて選択状態にしたいのですがどのようにしたらよいのでしょ
う?

初歩的な質問で申し訳ありませんが、よろしくお願いします。
開発環境は以下のとおりです。

WindowsXP Professional
Microsoft Visual C++6.0 Professional
MFC未使用

RAPT 2006/03/24(金) 01:36:07
WM_SETFOCUS と EM_SETSEL を調べてみてください。

Dir 2006/03/24(金) 12:15:01
回答ありがとうございます。
WM_SETFOCUS と EM_SETSELを使って、タブキーなどでフォーカスを移動したときには
全選択状態になったのですが、エディットコントロールがクリックされたことによって
フォーカスを得たときには選択状態にすることができませんでした。

dairygoods 2006/03/24(金) 12:23:46
WM_SETFOCUS でやるのは早すぎるのです。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200411/04110015.txt

tafu 2006/03/24(金) 12:40:09
私もそのような動作をさせたかったので、結局WM_CAPTURECHANGEDを捕まえて、EM_SETSEL
しました。
試してはいないのですが、1行入力であればSimple combo boxを使ったほうが、希望の動
作に近いのかなと思ってます。

Dir 2006/03/24(金) 12:47:14
[[解決]]
dairygoodsさん、tafuさんレスありがとうございます。

dairygooodsさんのサブクラス化なのですが、MFCを使っておらず、また、クラス化もして
いないので、よくわかりませんでした^^;

tafuさんのWM_CAPTURECHANGEDを捕まえる方法でやったらうまくできました。

ありがとうございます。

RAPT 2006/03/25(土) 03:00:43
もう解決したようですが、補足。
何もサブクラス化はMFC限定用語ではありません。
SDKでもサブクラス化は普通に行います。
# むしろMFCでのサブクラス化はよく知らなかったり・・・

この場合は、Editコントロールの標準の動作を変えるために、
Editコントロールを継承した独自の振る舞いを定義する、
といえばわかりやすいでしょうか。

古いスレッドには追加発言できません。