win32_step_3 - 8BitsCoding/RobotMentor GitHub Wiki
GDI์ ์ด๋ค์์ผ๋ก ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋์ง์ ๋ํ ์ค๋ช ์ ์๋์ฌ์ดํธ๋ฅผ ์ฐธ์กฐํ์.
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (uMsg == WM_DESTROY) PostQuitMessage(0);
else if (uMsg == WM_LBUTTONDOWN) {
// ์ผ์ชฝ ๋ง์ฐ์ค ํด๋ฆญ
HDC h_dc = GetDC(hWnd);
Rectangle(h_dc, 10, 10, 200, 200);
ReleaseDC(hWnd, h_dc);
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

๋ง์ฐ์ค ํด๋ฆญ ์์น์ ๊ทธ๋ ค๋ณด์.
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (uMsg == WM_DESTROY) PostQuitMessage(0);
else if (uMsg == WM_LBUTTONDOWN) {
// ์ผ์ชฝ ๋ง์ฐ์ค ํด๋ฆญ
HDC h_dc = GetDC(hWnd);
//int x = lParam & 0x0000FFFF; // ํ์ 16๋นํธ ๊ฐ ๋ถ๋ฆฌ
//int y = (lParam >> 16) & 0x0000FFFF; // ์์ 16๋นํธ ๊ฐ ๋ถ๋ฆฌ
int x = LOWORD(lParam);
int y = HIWORD(lParam);
// GET_X_LPARAM(lParam);
// ๋ ๋์ผํ๊ฒ ๋์ํ์ง๋ง #include <Windowsx.h>๋ฅผ ํด์ค์ผํจ.
Rectangle(h_dc, x - 15, y - 15, x + 15, y + 15);
ReleaseDC(hWnd, h_dc);
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

Ctrl์ ๋๋ฅด๋ฉด ์์ด ๊ทธ๋ ค์ง๊ฒ ๋ง๋ค์ด๋ณด์.
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if (uMsg == WM_DESTROY) PostQuitMessage(0);
else if (uMsg == WM_LBUTTONDOWN) {
// ์ผ์ชฝ ๋ง์ฐ์ค ํด๋ฆญ
HDC h_dc = GetDC(hWnd);
//int x = lParam & 0x0000FFFF; // ํ์ 16๋นํธ ๊ฐ ๋ถ๋ฆฌ
//int y = (lParam >> 16) & 0x0000FFFF; // ์์ 16๋นํธ ๊ฐ ๋ถ๋ฆฌ
int x = LOWORD(lParam);
int y = HIWORD(lParam);
if(MK_CONTROL & wParam) Ellipse(h_dc, x - 15, y - 15, x + 15, y + 15);
else Rectangle(h_dc, x - 15, y - 15, x + 15, y + 15);
ReleaseDC(hWnd, h_dc);
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
