Mouse Over Special Efects

Environment: This was built using Visual C++ 6.0 SP 2.
I used 16-bit color bitmaps, so if your resolution is set to 256 colors, it will probably not look very pleasing.

This is an updated version to my original posting. I have taken the comments that
I received and have come up with a better version of the code.
My thanks to Anatoly Ivasyuk, Jacques, and Dave Montgomery for their comments.

I needed a way to change a bitmap when the mouse went over it, and also to detect
if the user pressed the mouse button. What I came up with was the following quick
and easy solution.

void CMouseTrackDlg::OnMouseMove(UINT nFlags, CPoint point)

if (rect.PtInRect(point))

CDialog::OnMouseMove(nFlags, point);

All I did here was check to see if the mouse had entered into the
bitmap. If it had, a different bitmap is displayed.

void CMouseTrackDlg::OnLButtonUp(UINT nFlags, CPoint point)

AfxMessageBox(“You pressed the Visual C++ bitmap”, MB_OK);

CDialog::OnLButtonUp(nFlags, point);

Here I just wanted to check if the user pressed the left mouse button
while inside the bitmap.

Make sure to load the bitmaps:

BOOL CMouseTrackDlg::OnInitDialog()

// Set the icon for this dialog. The framework does this automatically
// when the application’s main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here


return TRUE; // return TRUE unless you set the focus to a control

And make sure to initially declare the bitmaps, in this case there are only two.
In addition to the bitmaps, you can see I declared a CRect which is used in the
code above.

CRect rect;
CBitmap bitmap1;
CBitmap bitmap2;


void CMouseTrackDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
CDialog::OnActivate(nState, pWndOther, bMinimized);

if(nState == WA_INACTIVE)

Here I mapped the OnActivate message to the dialog (CMouseTrackDlg) and if the
dialog has lost its focus, then the orginal bitmap is displayed.

Download demo project – 13 KB

Download source – 21.7 KB

More by Author

Must Read