在 Win32 應用程序中,從對話框的編輯框控件獲取用戶輸入的數字,主要有兩種方法:
// 1. 獲取編輯框窗口句柄
HWND hEdit = GetDlgItem(hDlg, IDC_EDIT1);
// 2. 獲取文本內容
char buffer[256];
GetWindowText(hEdit, buffer, sizeof(buffer));
// 3. 字符串轉整數
int value = atoi(buffer);
BOOL success;
int value = GetDlgItemInt(hDlg, IDC_EDIT1, &success, FALSE);
// success 為 TRUE 表示轉換成功,FALSE 表示內容非數字
// 最後參數 FALSE 表示無符號,TRUE 表示有符號
case IDC_BUTTON_OK:
BOOL success;
int number = GetDlgItemInt(hDlg, IDC_EDIT_NUMBER, &success, TRUE);
if (success) {
char msg[100];
wsprintf(msg, "您輸入的數字是:%d", number);
MessageBox(hDlg, msg, "結果", MB_OK);
} else {
MessageBox(hDlg, "請輸入有效的整數!", "錯誤", MB_ICONERROR);
SetFocus(GetDlgItem(hDlg, IDC_EDIT_NUMBER));
}
break;
// resource.rc
IDD_MYDIALOG DIALOGEX 0, 0, 200, 100
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "數字輸入"
FONT 9, "微軟雅黑"
BEGIN
EDITTEXT IDC_EDIT_NUMBER, 50, 20, 100, 14, ES_AUTOHSCROLL | ES_NUMBER
PUSHBUTTON "確定", IDC_BUTTON_OK, 70, 50, 60, 20
END
推薦使用 `GetDlgItemInt` 簡潔高效;需獲取原始文本時用 `GetWindowText` 配合 `atoi`/`strtol`。記得做輸入驗證和異常處理,提升程序健壯性。