掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ボタンの上にマウスポインタがきたときにボタンのキャプションを取得して表示するには? (ID:56125)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ふぃ〜。トラブルは解決してないけどちょっと余裕ができたんで、 数年前に作ったソース引っ張り出してきました。 2.はプロパティを「通知」にしても駄目だったんでした。 1.の方法で CButtonをベースにした派生クラスを作成 #include <XXXDlg.h> int flg = 0; void CXXXButton::OnMouseMove(UINT nFlags, CPoint point) { CString str; CRect rectW; if (flg == 0) { ::SetCapture(this->GetSafeHwnd()); GetWindowText(str); ((CXXXDlg*)GetParent())->SetDlgItemText(XXX, str); flg = 1; } else { GetClientRect(rectW); // 領域外 if ((point.x < 0) || (point.y < 0) || (point.x > rectW.Width()) || (point.y > rectW.Height())) { ReleaseCapture(); ((CXXXDlg*)GetParent())->表示を元に戻す関数 flg = 0; } } CButton::OnMouseMove(nFlags, point); } クラスウィザード-メンバ変数でボタンを作成したクラスと結び付け もっとスマートなやり方があると思うけど、とりあえずこれで動くはず。 領域外に出たら表示を戻すとこがポイントです。 領域外認識のためにSetCapture()、ReleaseCapture()が必要。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.