c言語、winapiです。 「左クリックしたら四角を、ボタンをクリックしたらおうぎを表示する」コードを書きました。 そして、「右クリックしたら、図形が消される(その場所に図形がなければエラーメッセージ)」、「シフトボタンを押しながら図形をドラッグすると移動する」の機能は足すには、どうすればよいでしょうか。 コード #include <windows.h> HWND Hwnd,button; LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASS wc; MSG msg; wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = NULL; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)COLOR_BACKGROUND + 1; wc.lpszMenuName = NULL; wc.lpszClassName = TEXT("GETDC"); RegisterClass(&wc); Hwnd = CreateWindow(TEXT("GETDC"), TEXT("Windos API Primer"), WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 300, 200, NULL, NULL, hInstance, NULL); button = CreateWindowEx(WS_EX_LEFT, TEXT("BUTTON"), TEXT("b"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 50, 0, 50, 30, Hwnd, (HMENU)1, hInstance, NULL); while (GetMessage(&msg, NULL, 0, 0)) { DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { HDC hdc; int x, y; switch (msg) { case WM_LBUTTONDOWN: hdc = GetDC(hwnd); x = LOWORD(lParam); y = HIWORD(lParam); Rectangle(hdc, x - 10, y - 10, x + 10, y + 10); ReleaseDC(hwnd, hdc); break; case WM_COMMAND: if (HIWORD(wParam) == BN_CLICKED) { if (LOWORD(wParam) == 1) { hdc = GetDC(Hwnd); Arc(hdc, 50, 50, 150, 150, 100, 200, 0, 100); ReleaseDC(Hwnd, hdc); } } break; case WM_DESTROY: PostQuitMessage(0); break; } return DefWindowProc(hwnd, msg, wParam, lParam); }