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

[戻る]
ガラ 2005/04/21(木) 19:55:20
ボタンの上にマウスカーソルがおかれたとき、ボタンをアップさせたいのですが、
ボタンの上にマウスカーソルが置かれた状態のことをフォーカスといわないのでしょう
か?
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");

たま 2005/04/22(金) 10:25:47
ボタンの上にマウスカーソルがおかれたとき==ホバリングのことなら

ボタンの上で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で確認してください

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