昨天我問了我的問題,但無法得到正確的答案。現在生病了,問得更清楚些。 使用win api我創建了一個窗口和一個按鈕。在按鈕的前面有一個以綠色繪製的圓圈。一旦按下該按鈕,圓圈就會變成紅色。使用InvalideRect()更改GDI形狀
(我使用C++,和MinGW編譯器。)
這裏是我的代碼
LRESULT CALLBACK WinProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hDC;
HBRUSH brusha;
brusha=CreateSolidBrush(RGB(0,255,0));
switch(msg)
{
case WM_CREATE:
{
b=CreateWindowEx(WS_EX_CLIENTEDGE,
"BUTTON",
"red",
WS_CHILD|WS_VISIBLE|
BS_DEFPUSHBUTTON,
350,
100,
100,
40,
hWnd,
(HMENU)BUTTON,
GetModuleHandle(NULL),
NULL);
}
break;
case WM_PAINT:
{
hDC=BeginPaint(hWnd,&ps);
SelectObject(hDC,brusha);
Ellipse(hDC, 20, 20, 100, 100);
EndPaint(hWnd, &ps);
}
case WM_COMMAND:
switch(LOWORD(wParam))
{
case BUTTON:
{
brusha=CreatSolideBrush(RGB(255,0,0));
InvalidateRect(hWnd,0,false);
}
}
break;
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
break;
}
return DefWindowProc(hWnd,msg,wParam,lParam);
}
這個編譯沒有錯誤。但按鈕點擊沒有任何反應
你的問題是什麼? –
@RaymondChen這個編譯與我的錯誤,但沒有任何反應按鈕點擊。 –