ボタンの上にマウスカーソルがおかれたとき、ボタンをアップさせたい。 – プログラミング – Home

ボタンの上にマウスカーソルがおかれたと...
 
通知
すべてクリア

ボタンの上にマウスカーソルがおかれたとき、ボタンをアップさせたい。


ガラ
 ガラ
(@ガラ)
ゲスト
結合: 20年前
投稿: 201
Topic starter  

ボタンの上にマウスカーソルがおかれたとき、ボタンをアップさせたいのですが、
ボタンの上にマウスカーソルが置かれた状態のことをフォーカスといわないのでしょう
か?
CBitmapButton をクリエイトして
でビットマップを読み込ませ、CBitmapButton::LoadBitmapsで
引数を4つとも入れて、フォーカス時に別のビットマップデータを
表示させようとしているのですが、
ボタンの上にマウスカーソルがおかれても、何の変化もありません。
どうすれば、よろしいのでしょうか?

m_bitmapbutton = new CBitmapButton ;
m_bitmapbutton->Create(_T(A_),
WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
CRect(0, 0, 780, 480),
this,
ID_SO_START);
m_bitmapbutton->LoadBitmaps(A_U,A_D,A_F,A_X);


引用解決済
トピックタグ
たま
 たま
(@たま)
ゲスト
結合: 23年前
投稿: 50
 

ボタンの上にマウスカーソルがおかれたとき==ホバリングのことなら

ボタンの上でWM_MOUSEMOVEが発生したときに
TRACKMOUSEEVENTのdwFlags にTME_HOVERを
セットしてTrackMouseEvent()を呼び出すと
一定時間後にWM_MOUSEHOVERが発生します。

// CButton m_btn;
if(pMsg->hwnd == m_btn.m_hWnd) {
if(pMsg->message == WM_MOUSEMOVE) {
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.dwFlags = TME_HOVER;
tme.hwndTrack = m_btn.m_hWnd;
tme.dwHoverTime = 2000;
TrackMouseEvent(&tme);
}
if(pMsg->message == WM_MOUSEHOVER) {
TRACE(WM_MOUSEHOVER\n);
}

}

詳細はMSDNで確認してください


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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