エディットボックスの全選択 – プログラミング – Home

エディットボックスの全選択
 
通知
すべてクリア

エディットボックスの全選択


まかろに
 まかろに
(@まかろに)
ゲスト
結合: 20年前
投稿: 36
Topic starter  

お世話になります、まかろにです。
連続書き込みっぽくてすいませんです。

エディットボックスについての質問ですが
マウスでエディットボックスを選択した際
そこに表示されてる値を一気に全選択したいのです。
(IEのアドレス部分を選択したときに青く全選択状態になりますよね?
あんな感じで)
それにはどのようにすればよいのでしょうか?

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


引用解決済
トピックタグ
まかろに
 まかろに
(@まかろに)
ゲスト
結合: 20年前
投稿: 36
Topic starter  

すいません。開発環境を書き忘れていました。

WindowsXP VC++6.0 MFC です。


返信引用
たく
 たく
(@たく)
ゲスト
結合: 21年前
投稿: 29
 

WM_SETFOCUSでEM_SETSELすればよいと思います。
MFCの場合は
OnSetfocusでSetSelすればよいかと


返信引用
まかろに
 まかろに
(@まかろに)
ゲスト
結合: 20年前
投稿: 36
Topic starter  

レスありがとうございます。

早速試してみたのですが…うまくいきません。

CEdit* p_edit = (CEdit *)GetDlgItem(IDC_EDIT1);

p_edit->SetSel(0, -1);

としているのですが。
ちなみに、GetSel()を試してみたところ、先頭位置・終了位置共に
0が返ってきました。
このエディットボックスはダイアログバーに置かれているのですが
その辺りも関係あったりするのでしょうか?

p_edit->SetWindowText(…);
などは普通に動いてくれているのですが。

よろしくお願いします。


返信引用
まかろに
 まかろに
(@まかろに)
ゲスト
結合: 20年前
投稿: 36
Topic starter  

自己レス申し訳ないです。

GetSel() に関してはちょっと勘違いしてました、すいません。
しかし、SetSel() は相変わらずうまくいきません。
マニュアルには 先頭0で最後をー1に指定したら全選択と書いてあるのですがね。
念のため LineLength() とかしてみたら、ちゃんと返ってきていました
( コントロールのテキストが初期値は 0.0000000 なので 長さ8 という感じで )

ご助言よろしくお願いします。


返信引用
へろ
 へろ
(@へろ)
ゲスト
結合: 20年前
投稿: 6
 

p_edit->SetSel(0, -1);
の前に

m_edit->SetFocus();
を入れてみては?


返信引用
まかろに
 まかろに
(@まかろに)
ゲスト
結合: 20年前
投稿: 36
Topic starter  

レスありがとうございます。

SetFocus() を直前に入れてみたのですが、変わりませんでした。
報告だけですいません…


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

エディットのクリックイベント処理はこんな風になっています。
# イメージです。

void CEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
if (フォーカスがない) {
フォーカスをセット(WM_SETFOCUS発生);
}
クリックした位置にカレットを移動;
}
なので、OnSetFocusでカレット位置を調整しても意味がありません。

エディットをサブクラス化して
OnLButtonDownを独自のものに変更する必要があるでしょう。


返信引用
たく
 たく
(@たく)
ゲスト
結合: 21年前
投稿: 29
 

失礼いたしました。
dairygoodsさんのが、正解です。
お手間を取らせまして、すみませんでした。


返信引用
まかろに
 まかろに
(@まかろに)
ゲスト
結合: 20年前
投稿: 36
Topic starter  

レスありがとうございます。
返事が遅れて申し訳ありません。

dairygoods さんの言われる、エディットをサブクラス化して
OnLButtonDownを独自のものに変更する というのが
若干ピンとこないので、詳しく説明していただいてもよろしいでしょうか?

お手数おかけしますが、よろしくお願いいたします。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

> 若干ピンとこないので、詳しく説明していただいてもよろしいでしょうか?

とりあえず、「サブクラス化」について調べてみてください。

# どこまでピンと来るのか教えていただけると、
# ありがたいのですが。


返信引用
まかろに
 まかろに
(@まかろに)
ゲスト
結合: 20年前
投稿: 36
Topic starter  

レスありがとうございます。

とりあえずサブクラス化というものを勉強してみます。
その上で何かありましたら、また質問させていただきます。
結果も報告させていただきますので、未解決ということで・・・


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました