Env: Win32 (Visual C++)

I'm using WM_MOUSEMOVE to change a button (using STATIC with SS_BITMAP) so that when the mouse is hovering at the button it change from Default.bmp to Hover.bmp. I manage to compile and the program is running, but the button doesn't change sometime.

Any solution and hel, will be great. Thanks.

P.S Sorry for my bad english
Code:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	flashMWindow.cbSize = sizeof(flashMWindow);
	flashMWindow.dwFlags = FLASHW_ALL;
	flashMWindow.dwTimeout = 250;
	flashMWindow.hwnd = hWnd;
	flashMWindow.uCount = 4;	

	static BOOL  Click, BtnConnectClick, BtnConnectHover, BtnConnectChange;
	
	switch (message)
	{
	case WM_CREATE:
		FlashWindowEx(&flashMWindow);
		ConnectionButton = 	CreateWindowEx (NULL, _T("STATIC"), TEXT (""),
							WS_CHILD | WS_VISIBLE | SS_NOTIFY | SS_BITMAP,
							10, 400, 140, 40,
							hWnd, (HMENU) IDC_CONNECTION, GetModuleHandle(NULL), NULL) ;
		LoadImage();
		InvalidateRect(hWnd,NULL,true);
		break;
	/*
	case WM_LBUTTONDOWN :
		if ((LOWORD(lParam)>=10)&&(LOWORD(lParam)<=150)&&(HIWORD(lParam)>=400)&&(HIWORD(lParam)<=440))
		{
			BtnConnectClick = TRUE;
		}
		else
		{
			BtnConnectClick = FALSE;
		}
        Click = TRUE ;
        InvalidateRect(hWnd,NULL,false);
		break;
	*/
	case WM_MOUSEMOVE:
		if ((LOWORD(lParam)>=10)&&(LOWORD(lParam)<=150)&&(HIWORD(lParam)>=400)&&(HIWORD(lParam)<=440))
		{
			BtnConnectHover = TRUE;
		}
		else
		{
			BtnConnectHover = FALSE;
		}
		tme.cbSize = sizeof(tme); 
        tme.dwFlags = TME_LEAVE; 
        tme.hwndTrack = hWnd; 
        TrackMouseEvent(&tme); 
		InvalidateRect(hWnd,NULL,false);
        return 0;
	/*
	case WM_LBUTTONUP :
		if (Click)
        {
			if ((LOWORD(lParam)>=10)&&(LOWORD(lParam)<=150)&&(HIWORD(lParam)>=400)&&(HIWORD(lParam)<=440))
			{
				if (BtnConnectClick)
				{
					BtnConnectChange = 1;
					if (Connection == Disconnect) 
					{
						Connection = Connect;
					} 
					else 
					{
						Connection = Disconnect;
					}
				}
			}
        }
		Click = FALSE;
		InvalidateRect (hWnd, NULL, TRUE);
        break;
	*/
	case WM_COMMAND:
		switch (LOWORD(wParam))
		{
			case IDC_CONNECTION:
				if (Connection == Disconnect) 
				{
					Connection = Connect;
				} 
				else 
				{
					Connection = Disconnect;
				}
				break;
		}
		InvalidateRect(hWnd,NULL,false);
		break;
	case WM_KEYDOWN:
		{	
			if (wParam == VK_ESCAPE)
			{
				int ret = MessageBox(NULL, TEXT("Are you sure to quit?"), TEXT("Message"), MB_OKCANCEL);
				if ( ret == IDOK)
				{
					SendMessage(hWnd, WM_CLOSE, 0, 0);
				}
			}
		break;
		}
	case WM_PAINT:
		hDC = BeginPaint(hWnd, &ps);
		// TODO: Add any drawing code here...
		MemDC = CreateCompatibleDC(hDC);
		SelectObject(MemDC,bmp[0]);
		BitBlt(hDC,0,0,800,450,MemDC,0,0,SRCCOPY);
		DeleteDC(MemDC);
		EndPaint(hWnd, &ps);
		//Paint Connection Button
		if(BtnConnectHover == FALSE)
		{
			if (Connection == 0)
				{
				cn = 1;
				}
			else
				{
				cn = 3;
				}
		}
		if(BtnConnectHover == TRUE)
		{
			if (Connection == 0)
			{
				cn = 2;
			}
			if (Connection == 1)
			{
				cn = 4;
			}
		}
		hDC = BeginPaint(ConnectionButton, &ps);
		MemDC = CreateCompatibleDC(hDC);
		SelectObject(MemDC,bmp[cn]);
		BitBlt(hDC,0,0,140,40,MemDC,0,0,SRCCOPY);
		DeleteDC(MemDC);
		EndPaint(ConnectionButton, &ps);
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}

// Message handler for about box.
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	UNREFERENCED_PARAMETER(lParam);
	switch (message)
	{
	case WM_INITDIALOG:
		return (INT_PTR)TRUE;

	case WM_COMMAND:
		if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
		{
			EndDialog(hDlg, LOWORD(wParam));
			return (INT_PTR)TRUE;
		}
		break;
	}
	return (INT_PTR)FALSE;
}

void LoadImage() 
{
	bmp[0]=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_BG));
	bmp[1]=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_DefaultConnect));
	bmp[2]=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_HoverConnect));
	bmp[3]=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_DefaultDisconnect));
	bmp[4]=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_HoverDisconnect));
}