我在WM_DRAWITEM中写一个函数,用一个循环,获取按钮的句柄,用
hDC = BeginPaint( g_Button_hWnd[i], &ps );
hDCMem = CreateCompatibleDC( hDC );
SelectObject( hDCMem, g_hWnd_Bitmap_White );
BitBlt( hDC, 1, 1, 28, 28, hDCMem, 0, 0, SRCCOPY );
DeleteDC( hDCMem );
EndPaint( g_Button_hWnd[i], &ps );来画按钮。
并且建立了3个按钮。可是在程序启动时,第1个按钮并没有画出,这是为什么?
无论几个按钮,总是第一个没法画出,这是怎么回事?
hDC = BeginPaint( g_Button_hWnd[i], &ps );
hDCMem = CreateCompatibleDC( hDC );
SelectObject( hDCMem, g_hWnd_Bitmap_White );
BitBlt( hDC, 1, 1, 28, 28, hDCMem, 0, 0, SRCCOPY );
DeleteDC( hDCMem );
EndPaint( g_Button_hWnd[i], &ps );来画按钮。
并且建立了3个按钮。可是在程序启动时,第1个按钮并没有画出,这是为什么?
无论几个按钮,总是第一个没法画出,这是怎么回事?
hDC和hDCMem每次都不一样,这怎么看
只要有WM_DRAWITEM消息,就调用那个函数,不就把所有按钮都用位图重画了一遍?
MSDN:
An application should not call BeginPaint except in response to a WM_PAINT message. Each call to BeginPaint must have a corresponding call to the EndPaint function.
很奇怪lz为什么这么做