/* ダブルクリック、シングルクリック テスト NG版 */ /* 2005.08.13 */ #include #include LRESULT CALLBACK WindowFunc(HWND, UINT, WPARAM, LPARAM); char szWinName[] = "SD_CLKNG"; int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst, LPSTR lpszArgs, int nWinMode) { HWND hwnd; MSG msg; WNDCLASSEX wcl; wcl.hInstance = hThisInst; wcl.lpszClassName = szWinName; wcl.lpfnWndProc = WindowFunc; wcl.style = CS_DBLCLKS; wcl.cbSize = sizeof(WNDCLASSEX); wcl.hIcon = LoadIcon(NULL, IDI_APPLICATION); wcl.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wcl.hCursor = LoadCursor(NULL, IDC_ARROW); wcl.lpszMenuName = NULL; wcl.cbClsExtra = 0; wcl.cbWndExtra = 0; wcl.hbrBackground = GetStockObject(WHITE_BRUSH); if(!RegisterClassEx(&wcl)) return 0; hwnd = CreateWindow( szWinName, "ダブルクリック、シングルクリック テスト NG版", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, NULL, hThisInst, NULL); ShowWindow(hwnd, nWinMode); UpdateWindow(hwnd); while(GetMessage(&msg, NULL, 0, 0)){ TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message){ case WM_RBUTTONDOWN: MessageBox(hwnd, "右シングルクリック", "右シングルクリック", MB_OK); break; case WM_RBUTTONDBLCLK: MessageBox(hwnd, "右ダブルクリック", "右ダブルクリック", MB_OK); break; case WM_LBUTTONDOWN: MessageBox(hwnd, "左シングルクリック", "左シングルクリック", MB_OK); break; case WM_LBUTTONDBLCLK: MessageBox(hwnd, "左ダブルクリック", "左ダブルクリック", MB_OK); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, message, wParam, lParam); } return 0; }