#include <windows.h>
#include "test.h"
static HBRUSH hbrBackColor;
LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) {
static int enable;
switch (msg) {
case WM_CLOSE:
PostQuitMessage(0);
return 1;
case WM_CREATE:
SendMessage(GetDlgItem(hwnd, IDEDIT), WM_ENABLE, 1, 0);
enable = 1;
return 1;
case WM_CTLCOLORDLG:
return (LRESULT)hbrBackColor;
case WM_CTLCOLORSTATIC:
SetBkColor((HDC)wp, RGB(0xf0, 0xb0, 0xb0));
return (LRESULT)hbrBackColor;
case WM_COMMAND:
switch (LOWORD(wp)) {
case IDBUTTON:
if (enable) { SendMessage(GetDlgItem(hwnd, IDEDIT), WM_ENABLE, 0, 0); enable = 0; }
else { SendMessage(GetDlgItem(hwnd, IDEDIT), WM_ENABLE, 1, 0); enable = 1; }
}
return 0;
}
return DefDlgProc(hwnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
HWND hwnd;
MSG msg;
WNDCLASS winc;
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc = WndProc;
winc.cbClsExtra = 0;
winc.cbWndExtra = DLGWINDOWEXTRA; /* need for dialog-base application */
winc.hInstance = hInstance;
winc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
winc.hCursor = LoadCursor(NULL , IDC_ARROW);
// winc.hbrBackground = hbrBackColor;
winc.hbrBackground = NULL;
winc.lpszMenuName= NULL;
winc.lpszClassName = TEXT("TEST");
if (!RegisterClass(&winc)) return -1;
hbrBackColor = CreateSolidBrush(RGB(0xf0, 0xb0, 0xb0));
hwnd = CreateDialog(hInstance , TEXT("TEST") , 0 , NULL);
if (hwnd == NULL) {
MessageBox(0, TEXT("CreateDialog()failed."), TEXT("ERROR"), MB_OK);
DeleteObject(hbrBackColor);
return -1;
}
while(GetMessage(&msg , NULL , 0 , 0) > 0) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
DeleteObject(hbrBackColor);
return msg.wParam;
}
/* end */
I2luY2x1ZGUgPHdpbmRvd3MuaD4KI2luY2x1ZGUgInRlc3QuaCIKc3RhdGljIEhCUlVTSCBoYnJCYWNrQ29sb3I7CgpMUkVTVUxUIENBTExCQUNLIFduZFByb2MoSFdORCBod25kICwgVUlOVCBtc2cgLCBXUEFSQU0gd3AgLCBMUEFSQU0gbHApIHsKICBzdGF0aWMgaW50IGVuYWJsZTsKCiAgc3dpdGNoIChtc2cpIHsKICBjYXNlIFdNX0NMT1NFOgogICAgUG9zdFF1aXRNZXNzYWdlKDApOwogICAgcmV0dXJuIDE7CgogIGNhc2UgV01fQ1JFQVRFOgogICAgU2VuZE1lc3NhZ2UoR2V0RGxnSXRlbShod25kLCBJREVESVQpLCBXTV9FTkFCTEUsIDEsIDApOwogICAgZW5hYmxlID0gMTsKICAgIHJldHVybiAxOwoKICBjYXNlIFdNX0NUTENPTE9SRExHOgogICAgcmV0dXJuIChMUkVTVUxUKWhickJhY2tDb2xvcjsKCiAgY2FzZSBXTV9DVExDT0xPUlNUQVRJQzoKICAgIFNldEJrQ29sb3IoKEhEQyl3cCwgUkdCKDB4ZjAsIDB4YjAsIDB4YjApKTsKICAgIHJldHVybiAoTFJFU1VMVCloYnJCYWNrQ29sb3I7CgogIGNhc2UgV01fQ09NTUFORDoKICAgIHN3aXRjaCAoTE9XT1JEKHdwKSkgewogICAgY2FzZSBJREJVVFRPTjoKICAgICAgaWYgKGVuYWJsZSkgeyBTZW5kTWVzc2FnZShHZXREbGdJdGVtKGh3bmQsIElERURJVCksIFdNX0VOQUJMRSwgMCwgMCk7IGVuYWJsZSA9IDA7IH0KICAgICAgZWxzZSB7ICAgICAgICBTZW5kTWVzc2FnZShHZXREbGdJdGVtKGh3bmQsIElERURJVCksIFdNX0VOQUJMRSwgMSwgMCk7IGVuYWJsZSA9IDE7IH0KICAgIH0KICAgIHJldHVybiAwOwogIH0KICByZXR1cm4gRGVmRGxnUHJvYyhod25kICwgbXNnICwgd3AgLCBscCk7Cn0KCmludCBXSU5BUEkgV2luTWFpbihISU5TVEFOQ0UgaEluc3RhbmNlICwgSElOU1RBTkNFIGhQcmV2SW5zdGFuY2UgLAogICAgICAgICAgICAgICAgICAgUFNUUiBscENtZExpbmUgLCBpbnQgbkNtZFNob3cgKSB7CiAgSFdORCBod25kOwogIE1TRyBtc2c7CiAgV05EQ0xBU1Mgd2luYzsKCiAgd2luYy5zdHlsZSA9IENTX0hSRURSQVcgfCBDU19WUkVEUkFXOwogIHdpbmMubHBmblduZFByb2MgPSBXbmRQcm9jOwogIHdpbmMuY2JDbHNFeHRyYSA9IDA7CiAgd2luYy5jYlduZEV4dHJhID0gRExHV0lORE9XRVhUUkE7IC8qIG5lZWQgZm9yIGRpYWxvZy1iYXNlIGFwcGxpY2F0aW9uICovCiAgd2luYy5oSW5zdGFuY2UgPSBoSW5zdGFuY2U7CiAgd2luYy5oSWNvbiA9IExvYWRJY29uKE5VTEwsIElESV9BUFBMSUNBVElPTik7CiAgd2luYy5oQ3Vyc29yID0gTG9hZEN1cnNvcihOVUxMICwgSURDX0FSUk9XKTsKLy8gIHdpbmMuaGJyQmFja2dyb3VuZCA9IGhickJhY2tDb2xvcjsKICB3aW5jLmhickJhY2tncm91bmQgPSBOVUxMOwogIHdpbmMubHBzek1lbnVOYW1lPSBOVUxMOwogIHdpbmMubHBzekNsYXNzTmFtZSA9IFRFWFQoIlRFU1QiKTsKCiAgaWYgKCFSZWdpc3RlckNsYXNzKCZ3aW5jKSkgcmV0dXJuIC0xOwoKICBoYnJCYWNrQ29sb3IgPSBDcmVhdGVTb2xpZEJydXNoKFJHQigweGYwLCAweGIwLCAweGIwKSk7CgogIGh3bmQgPSBDcmVhdGVEaWFsb2coaEluc3RhbmNlICwgVEVYVCgiVEVTVCIpICwgMCAsIE5VTEwpOwogIGlmIChod25kID09IE5VTEwpIHsKICAgIE1lc3NhZ2VCb3goMCwgVEVYVCgiQ3JlYXRlRGlhbG9nKClmYWlsZWQuIiksIFRFWFQoIkVSUk9SIiksIE1CX09LKTsKICAgIERlbGV0ZU9iamVjdChoYnJCYWNrQ29sb3IpOwogICAgcmV0dXJuIC0xOwogIH0KCiAgd2hpbGUoR2V0TWVzc2FnZSgmbXNnICwgTlVMTCAsIDAgLCAwKSA+IDApIHsKICAgIFRyYW5zbGF0ZU1lc3NhZ2UoJm1zZyk7CiAgICBEaXNwYXRjaE1lc3NhZ2UoJm1zZyk7CiAgfQogIERlbGV0ZU9iamVjdChoYnJCYWNrQ29sb3IpOwogIHJldHVybiBtc2cud1BhcmFtOwp9Ci8qIGVuZCAqLwo=