정적 변수로 nFlag 와 nCount 를 만들고
스위치 문 사용해서, 마우스 왼쪽 버튼이 눌렸을때 정적변수 nFlag 값의 변화를 통해서
최종적으로 마우스 드래그 시 nCount 증가와 드래그 활성화 라는 글을 화면상에 출력을 하고자 하는데요.
제가 생각하는 이론상 nFlag 가 4일때 드래그 활성화라는 글이 출력이 되어야 하는데 이상하게 nCount 값만 증가하네요;;
분명히 조건문 안에 같이 코드가 들어있는데 드래그 활성화 라는 출력만 되지 않네요..
제가 뭘 잘못한걸까요..?
도움 부탁드립니다.
------------코드-------------
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static int nCount = 0;
static int nFlag = 0;
switch (message)
{
case WM_LBUTTONDOWN:
{
nFlag = 1;
if (nFlag == 1)
nFlag = 2;
return 0;
}
case WM_MOUSEMOVE:
{
if(nFlag == 2)
nFlag = 3;
return 0;
}
case WM_LBUTTONUP:
{
if(nFlag == 3)
nFlag = 4;
}
/*if (WM_LBUTTONDOWN)
nFlag = 1;
if (WM_MOUSEMOVE)
nFlag = 2;
if (WM_LBUTTONUP)
nFlag = 3;*/
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
WCHAR szData[64] = L"";
int nStrCount = 0;
wsprintf(szData, L"값 : %d", nCount);
nStrCount = wcslen(szData);
TextOut(hdc, 100, 100, szData, nStrCount);
if (nFlag == 4)
{
WCHAR szText[64] = L"";
int nStrText = 0;
wsprintf(szText, L"드래그 활성화");
TextOut(hdc, 100, 200, szText, nStrText);
nCount++;
InvalidateRect(hWnd, NULL, TRUE);
nFlag = 0;
}
EndPaint(hWnd, &ps);
}