昨日質問したのですが、正しい回答が得られませんでした。今はもっとはっきりと聞いてください。win api を使用して、ウィンドウとボタンを作成しました。ボタンの前に緑色で描かれた円があります。ボタンを押すと、円が赤色に変わります。
(私は 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);
}
これはエラーなしでコンパイルされます。しかし、ボタンをクリックしても何も起こりません