#include <Windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
HINSTANCE g_hInst;

const char *ch = \"main\";
LPSTR lpszClass = const_cast<LPSTR>(ch);

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
{        
        // ================   선언   =====================
        HWND hWnd;
        MSG Message;
        WNDCLASS WndClass;
        g_hInst = hInstance;

        // ================  창 정보  ====================
        WndClass.cbClsExtra = 0;
        WndClass.cbWndExtra = 0;
        WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // 창 색깔
        WndClass.hCursor = LoadCursor(NULL, IDC_CROSS); // 커서 모양
        WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); // 아이콘 모양
        WndClass.hInstance = hInstance;
        WndClass.lpfnWndProc = (WNDPROC)WndProc;
        WndClass.lpszClassName = lpszClass; // 타이틀 내용
        WndClass.lpszMenuName = NULL; // 메뉴 내용
        WndClass.style = CS_HREDRAW | CS_VREDRAW; // 창 스타일
        RegisterClass(&WndClass);

        // =================   출력   ====================
        hWnd = CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, (HMENU)NULL, hInstance, NULL);
        ShowWindow(hWnd, nCmdShow);

        while (GetMessage(&Message, 0, 0, 0)) // 반복문
        {
                TranslateMessage(&Message);
                DispatchMessage(&Message);
        }
        return Message.wParam; // 2byte 매개변수로 저장
}

// =================  창 내부 정보  ====================

bool bMouseDown = false;

LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{
        // ================  선언  ====================

        HDC hdc;
        
        switch (iMessage)
        {
                // 마우스 버튼을 누른 후
                case WM_LBUTTONDOWN:
                {
                        // ================  정의  ====================
                        hdc = GetDC(hWnd); // Device Context 호출
                        bMouseDown = true;

                        // ================ 그리기 ====================
                        MoveToEx(hdc, LOWORD(lParam), HIWORD(lParam), nullptr); // 마우스 좌표 저장
                        // TextOut(hdc, 0, 0, TEXT(\"클릭 테스트\"), 11);

                        // ================  삭제  ====================
                        ReleaseDC(hWnd, hdc); // 호출했던 Device Context 해제

                        break;
                }
                
                // 마우스 버튼을 누르는 중
                case WM_MOUSEMOVE:
                {
                        // bMouseDown가 true인 경우
                        if (bMouseDown = true)
                        {
                                // ================  정의  ====================
                                hdc = GetDC(hWnd); // Device Context 호출

                                // ================ 그리기 ====================
                                // TextOut(hdc, 0, 0, TEXT(\"클릭 테스트\"), 11);
                                LineTo(hdc, LOWORD(lParam), HIWORD(lParam));

                                // ================  삭제  ====================
                                ReleaseDC(hWnd, hdc); // 호출했던 Device Context 해제
                        }

                        break;
                }

                // 마우스 버튼을 누르고 뗀 후
                case WM_LBUTTONUP:
                        // ================  정의  ====================
                        // hdc = GetDC(hWnd); // Device Context 호출
                        bMouseDown = false;

                        // ================ 그리기 ====================
                        // TextOut(hdc, 0, 0, TEXT(\"클릭 테스트\"), 11);

                        // ================  삭제  ====================

                        break;

                // 프로세스 종료
                case WM_DESTROY:
                        PostQuitMessage(0);

                        break;
        }
        return(DefWindowProc(hWnd, iMessage, wParam, lParam));
}

귀찮아서 전체코드 복붙함




지역변수 문젠가 싶어 전역변수로 바꾸고 if문 강제로 true만 인식하도록 바꾸니 짤에 있는 상황마냥 지랄판 터짐


마우스 이동만 했는데 저러더라



좌표0,0이 왜 찍히는거