본문 바로가기

Win32 api

Win32 api 강의 46화.

- Edit control 로부터 입력값 처리.

코드 이전에 리소스 뷰에서 edit control 의 속성을 보면

 

"숫자" 를 True 로 해주면, 입력값을 숫자로만 받을 수 있음.

// CScene_Tool.cpp
...
INT_PTR CALLBACK TileCountInputProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (message)
    {
    case WM_INITDIALOG:
        // 자리수 제한(선택)
        SendMessage(GetDlgItem(hDlg, IDC_EDIT_TILECOUNTCOLUMN), EM_SETLIMITTEXT, 3, 0);
        SendMessage(GetDlgItem(hDlg, IDC_EDIT_TILECOUNTROW), EM_SETLIMITTEXT, 3, 0);
        // 초기값(선택): 1
        SetDlgItemInt(hDlg, IDC_EDIT_TILECOUNTCOLUMN, 1, TRUE);
        SetDlgItemInt(hDlg, IDC_EDIT_TILECOUNTROW, 1, TRUE);

        return (INT_PTR)TRUE;

    case WM_COMMAND:
        if (LOWORD(wParam) == IDOK)
        {
            UINT tileCountCol = GetDlgItemInt(hDlg, IDC_EDIT_TILECOUNTCOLUMN, NULL, FALSE);
            UINT tileCountRow = GetDlgItemInt(hDlg, IDC_EDIT_TILECOUNTROW, NULL, FALSE);

            CScene* pCurScene = CSceneMgr::GetInstance()->GetCurScene();

            // 현재 씬이 툴 씬인지 확인
            if(dynamic_cast<CScene_Tool*>(pCurScene) == nullptr)
            {
                MessageBox(hDlg, L"Current scene is not tool scene.", L"Error", MB_OK);
                EndDialog(hDlg, LOWORD(wParam));
                return (INT_PTR)TRUE;
            }

            pCurScene->ClearGroupObjects(GROUP_TYPE::TILE);
            pCurScene->CreateTile(tileCountCol, tileCountRow);

            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        else if(LOWORD(wParam) == IDCANCEL)
        {
            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        break;
    }
    return (INT_PTR)FALSE;
}

 

GetDlgItemInt 함수에 해당 edit control 의 ID 값을 넘겨줌. NULL 자리에는 번역 성공 여부를 bool* 에 받을 수 있는데, 여기서는 숫자값이 확정이니까 넘어가고, FALSE 자리에는 singed 값, 즉 음수 처리인데 이것도 false 로 설정해둠.

 

 

'Win32 api' 카테고리의 다른 글

Win32 api 강의 48화.  (0) 2025.09.24
Win32 api 강의 47화.  (0) 2025.09.24
Win32 api 강의 44 - 45화.  (0) 2025.09.24
Win32 api 강의 43화.  (0) 2025.09.23
Win32 api 강의 41 - 42화.  (0) 2025.09.23