#include "stdafx.h" #include <windows.h> HANDLE g_hHandle = NULL; LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { AllocConsole(); g_hHandle = GetStdHandle( STD_OUTPUT_HANDLE ); static TCHAR szAppName[] = TEXT ("QwopWindow"); HWND hwnd; MSG msg; WNDCLASSEX wndclassex = {0}; wndclassex.cbSize = sizeof(WNDCLASSEX); wndclassex.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; wndclassex.lpfnWndProc = WndProc; wndclassex.cbClsExtra = 0; wndclassex.cbWndExtra = 0; wndclassex.hInstance = hInstance; wndclassex.hIcon = LoadIcon (NULL, IDI_APPLICATION); wndclassex.hCursor = LoadCursor (NULL, IDC_ARROW); wndclassex.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH); wndclassex.lpszMenuName = NULL; wndclassex.lpszClassName = szAppName; wndclassex.hIconSm = wndclassex.hIcon; if (!RegisterClassEx (&wndclassex)) { MessageBox (NULL, TEXT ("RegisterClassEx failed!"), szAppName, MB_ICONERROR); return 0; } hwnd = CreateWindowEx (WS_EX_OVERLAPPEDWINDOW, szAppName, TEXT ("左键双击消息"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); ShowWindow (hwnd, iCmdShow); UpdateWindow (hwnd); while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg); DispatchMessage (&msg); } return msg.wParam; } LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; static TCHAR szWmbtn[] = TEXT( "WM_LBUTTONDBLCLK\n" ); switch (message) { case WM_CREATE: return (0); case WM_LBUTTONDBLCLK: WriteConsole( g_hHandle, szWmbtn , sizeof( szWmbtn ) , NULL, NULL ); return (0 ); case WM_MOUSEWHEEL : /* fwKeys = LOWORD( wParam ); zDelta = ( short ) HIWORD( wParam ); xPos = ( short ) LOWORD( lParam ); yPos = ( short ) HIWORD( lParam ); */ return 0; case WM_PAINT: hdc = BeginPaint (hwnd, &ps); TextOut (hdc, 0, 0, "Test", 4 ); EndPaint (hwnd, &ps); return (0); case WM_DESTROY: PostQuitMessage (0); return (0); } return DefWindowProc (hwnd, message, wParam, lParam); }