Есть код прорисовки прямоугольника: | Цитата | #include <windows.h> #include <windef.h> LRESULT CALLBACK WindowsFunc(HWND, UINT, WPARAM, LPARAM); char WinName[] = "MainFrame"; int WINAPI WinMain(HINSTANCE This, HINSTANCE Prev, LPSTR cmd, int mode) { HWND hwnd; MSG msg; WNDCLASS wc; wc.hInstance = This; wc.lpszClassName = WinName; wc.lpfnWndProc = WindowsFunc; wc.style = 0; wc.hIcon = LoadIcon(NULL,IDI_APPLICATION); wc.hCursor = LoadCursor(NULL,IDC_ARROW); wc.lpszMenuName = NULL; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); if(!RegisterClass(&wc)) return 0; hwnd = CreateWindow(WinName, "Windows", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, NULL, This, NULL); ShowWindow(hwnd, mode); while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } } LRESULT CALLBACK WindowsFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; RECT rt; switch(message) { case WM_PAINT : hdc = BeginPaint(hwnd,&ps); GetClientRect(hwnd, &rt); SetViewportOrgEx(hdc,rt.right/2,rt.bottom/2,NULL);
Rectangle(hdc,-200,100,200,-100); EndPaint(hwnd,&ps); break; case WM_SIZE :InvalidateRect(hwnd,NULL,1); break; case WM_DESTROY : PostQuitMessage(0); break; default : return DefWindowProc(hwnd, message, wParam, lParam); } return 0; }
|
Помогите сделать с помощью WM_LBUTTON и WM_RBUTTON, чтобы при нажатии на левую кнопку мыши размеры прямоугольника уменьшались, а при нажатии на правую кнопку мыши его размеры, соответственно, увеличивались на единицу. |