#include <windows.h>
#include "test.h"
static HBRUSH hbrBackColor;
LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp) {
static int enable = 0;
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CTLCOLORDLG:
return (LRESULT)hbrBackColor;
case WM_CTLCOLORSTATIC:
SetBkColor((HDC)wp, RGB(0xf0, 0xb0, 0xb0));
SetClassLongPtr((HWND)lp, GCL_HBRBACKGROUND, (LONG)hbrBackColor);
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 DefWindowProc(hwnd , msg , wp , lp);
}
int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
HWND hwnd;
MSG msg;
WNDCLASS winc;
hbrBackColor = CreateSolidBrush(RGB(0xf0, 0xb0, 0xb0));
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;
hwnd = CreateDialog(hInstance , TEXT("TEST") , 0 , NULL); /* NULL: need for dialog-base application */
if (hwnd == NULL) return -1;
while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
DeleteObject(hbrBackColor);
return msg.wParam;
}
/* end */
I2luY2x1ZGUgPHdpbmRvd3MuaD4KI2luY2x1ZGUgInRlc3QuaCIKc3RhdGljIEhCUlVTSCBoYnJCYWNrQ29sb3I7CgpMUkVTVUxUIENBTExCQUNLIFduZFByb2MoSFdORCBod25kICwgVUlOVCBtc2cgLCBXUEFSQU0gd3AgLCBMUEFSQU0gbHApIHsKICBzdGF0aWMgaW50IGVuYWJsZSA9IDA7CgogIHN3aXRjaCAobXNnKSB7CiAgY2FzZSBXTV9ERVNUUk9ZOgogICAgUG9zdFF1aXRNZXNzYWdlKDApOwogICAgcmV0dXJuIDA7CgogIGNhc2UgV01fQ1RMQ09MT1JETEc6CiAgICByZXR1cm4gKExSRVNVTFQpaGJyQmFja0NvbG9yOwoKICBjYXNlIFdNX0NUTENPTE9SU1RBVElDOgogICAgU2V0QmtDb2xvcigoSERDKXdwLCBSR0IoMHhmMCwgMHhiMCwgMHhiMCkpOwogICAgU2V0Q2xhc3NMb25nUHRyKChIV05EKWxwLCBHQ0xfSEJSQkFDS0dST1VORCwgKExPTkcpaGJyQmFja0NvbG9yKTsKICAgIHJldHVybiAoTFJFU1VMVCloYnJCYWNrQ29sb3I7CgogIGNhc2UgV01fQ09NTUFORDoKICAgIHN3aXRjaCAoTE9XT1JEKHdwKSkgewogICAgY2FzZSBJREJVVFRPTjoKICAgICAgaWYgKGVuYWJsZSkgeyBTZW5kTWVzc2FnZShHZXREbGdJdGVtKGh3bmQsIElERURJVCksIFdNX0VOQUJMRSwgMCwgMCk7IGVuYWJsZSA9IDA7IH0KICAgICAgZWxzZSB7ICAgICAgICBTZW5kTWVzc2FnZShHZXREbGdJdGVtKGh3bmQsIElERURJVCksIFdNX0VOQUJMRSwgMSwgMCk7IGVuYWJsZSA9IDE7IH0KICAgIH0KICAgIHJldHVybiAwOwogIH0KICByZXR1cm4gRGVmV2luZG93UHJvYyhod25kICwgbXNnICwgd3AgLCBscCk7Cn0KCmludCBXSU5BUEkgV2luTWFpbihISU5TVEFOQ0UgaEluc3RhbmNlICwgSElOU1RBTkNFIGhQcmV2SW5zdGFuY2UgLAogICAgICAgICAgICAgICAgICAgUFNUUiBscENtZExpbmUgLCBpbnQgbkNtZFNob3cgKSB7CiAgSFdORCBod25kOwogIE1TRyBtc2c7CiAgV05EQ0xBU1Mgd2luYzsKCiAgaGJyQmFja0NvbG9yID0gQ3JlYXRlU29saWRCcnVzaChSR0IoMHhmMCwgMHhiMCwgMHhiMCkpOwoKICB3aW5jLnN0eWxlID0gQ1NfSFJFRFJBVyB8IENTX1ZSRURSQVc7CiAgd2luYy5scGZuV25kUHJvYyA9IFduZFByb2M7CiAgd2luYy5jYkNsc0V4dHJhID0gMDsKICB3aW5jLmNiV25kRXh0cmEgPSBETEdXSU5ET1dFWFRSQTsgLyogbmVlZCBmb3IgZGlhbG9nLWJhc2UgYXBwbGljYXRpb24gKi8KICB3aW5jLmhJbnN0YW5jZSA9IGhJbnN0YW5jZTsKICB3aW5jLmhJY29uID0gTG9hZEljb24oTlVMTCwgSURJX0FQUExJQ0FUSU9OKTsKICB3aW5jLmhDdXJzb3IgPSBMb2FkQ3Vyc29yKE5VTEwgLCBJRENfQVJST1cpOwovLyAgd2luYy5oYnJCYWNrZ3JvdW5kID0gaGJyQmFja0NvbG9yOwogIHdpbmMuaGJyQmFja2dyb3VuZCA9IE5VTEw7CiAgd2luYy5scHN6TWVudU5hbWU9IE5VTEw7CiAgd2luYy5scHN6Q2xhc3NOYW1lID0gVEVYVCgiVEVTVCIpOwoKICBpZiAoIVJlZ2lzdGVyQ2xhc3MoJndpbmMpKSByZXR1cm4gLTE7CiAgaHduZCA9IENyZWF0ZURpYWxvZyhoSW5zdGFuY2UgLCBURVhUKCJURVNUIikgLCAwICwgTlVMTCk7ICAvKiBOVUxMOiBuZWVkIGZvciBkaWFsb2ctYmFzZSBhcHBsaWNhdGlvbiAqLwogIGlmIChod25kID09IE5VTEwpIHJldHVybiAtMTsKCiAgd2hpbGUoR2V0TWVzc2FnZSgmbXNnICwgTlVMTCAsIDAgLCAwKSkgewogICAgVHJhbnNsYXRlTWVzc2FnZSgmbXNnKTsKICAgIERpc3BhdGNoTWVzc2FnZSgmbXNnKTsKICB9CiAgRGVsZXRlT2JqZWN0KGhickJhY2tDb2xvcik7CiAgcmV0dXJuIG1zZy53UGFyYW07Cn0KLyogZW5kICovCg==