CEDITコントロールでLBUTTONDOWNを処理するには? – プログラミング – Home

CEDITコントロールでLBUTTON...
 
通知
すべてクリア

[解決済] CEDITコントロールでLBUTTONDOWNを処理するには?


wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
Topic starter  

質問させてください
OS:WinXP VC++6(SP5) MFC

本題
フォームビューに貼り付けたEDITコントロール上で「右ボタン」が
押されたことを検出するにはどうしたらよいのでしょうか

フォームビュー上のコントロールの貼り付けていない部分では
WM_LBUTTONDOWN→OnLButtonDownは可能なのですが
EDITコントロール上では使用できないみたいなので
どうしたらいいのか教えてください


引用未解決
トピックタグ
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

クラスの追加で「新規」
クラス名:CMyEdit
基本クラス:CEdit

ビューのヘッダーに
#include MyEdit.h
を追加

メンバ変数の追加で、マウスのクリックを処理したいエディットコントロールを選び
メンバ変数:任意
カテゴリ:コントロール
変数のタイプ:CMyEdit

あとはCMyEditクラスのWM_RBUTTONDOWNやWM_RBUTTONDOWNで処理をするか
メッセージを飛ばせば良いと思います


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

BOOL CMyView::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_LBUTTONDOWN) {
CWnd *wnd = GetDlgItem(IDC_EDIT1);
CRect r;
wnd->GetWindowRect(r);
if (r.PtInRect(pMsg->pt))
TRACE(LBD on Edit\n);
}
return CFormView::PreTranslateMessage(pMsg);
}

私はこんな風にしてますが、今からkuさんの方法も試して見ます。
kuさんの方法のほうがスマートなのかな?
ケースバイケース?


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

試してみました。なんかかっこいいですね。
コントロールにメンバ変数をあてるのはあまり好きではなかったけど、
こんな使い方があったんですね。基本でしたか?

是非、うまく使ってみたいと思います。


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
Topic starter  

kuさん ありがとうございます
こんな風にしてメッセージ受け取れるなんて知りませんでした
クラスウィザードを使う方法は、私のような入門者にはとてもありがたいことです

たいちう さんありがとうございます
参考に勉強してみたいと思います


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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