#include <windows.h>
LRESULT CALLBACK WindowProc(
HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
);
HHOOK MouseHook;
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPreInstance,
LPSTR lpCmdLine,
int nCmdShow ) {
TCHAR szAppClassName[] = TEXT("Joe1sn"); WNDCLASS wndClass = { 0 }; wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndClass.hCursor = LoadCursor(NULL, IDC_ARROW); wndClass.hInstance = hInstance; wndClass.lpfnWndProc = WindowProc; wndClass.lpszClassName = szAppClassName; wndClass.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wndClass);
HWND hWnd = CreateWindow(szAppClassName, TEXT("Test"), WS_BORDER | WS_CAPTION | WS_SYSMENU | WS_MAXIMIZEBOX | WS_MINIMIZEBOX, 500, 200, 800, 600, NULL, NULL, hInstance, NULL ); ShowWindow(hWnd,SW_SHOW); UpdateWindow(hWnd);
MSG msg; while (GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg);
DispatchMessage(&msg); }
return 0; }
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam) {
return CallNextHookEx(MouseHook,nCode,wParam,lParam); }
LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { PAINTSTRUCT ps; HDC hDC;
switch (uMsg) { case WM_CREATE: { MouseHook = SetWindowsHookEx(WH_MOUSE, MouseProc, NULL, GetCurrentThreadId()); break; } case WM_CLOSE: DestroyWindow(hWnd); break; case WM_DESTROY: PostQuitMessage(0); case WM_PAINT: { hDC = BeginPaint(hWnd, &ps); HPEN hPen = CreatePen(PS_SOLID, 5, RGB(255, 0, 0)); SelectObject(hDC, hPen);
Ellipse(hDC, 0, 0, 200, 200);
EndPaint(hWnd, &ps); } case WM_LBUTTONDOWN: { MessageBox(hWnd, TEXT("Left"), TEXT("Titile"), MB_OK); break; } case WM_RBUTTONDOWN: { MessageBox(hWnd, TEXT("Right"), TEXT("Titile"), MB_OK); break; } case WM_MOUSEMOVE: { int x = LOWORD(lParam); int y = HIWORD(lParam); wchar_t str[0x100]; wsprintf(str, L"当前鼠标坐标(%d , %d)",x,y); SetWindowText(hWnd, str); }
} return DefWindowProc(hWnd, uMsg, wParam, lParam); }
|