GetDlgItemInt函式通過傳送控制項WM_GETTEXT訊息來檢索指定控制項的文本。 該函式通過剝離文本開頭的任何額外的空格,然後轉換十進制數字來翻譯檢索到的文本。 該功能在到達文本末尾或遇到非數字字元時停止轉換
基本介紹
- 中文名:GetDlgItemInt
- 外文名:GetDlgItemInt
- 函式功能:獲取控制項文本並轉換成int型返回
- 函式原型:UINT GetDlgItemInt
- 頭檔案:Windows.h
- 庫檔案:User32.lib
聲明:,參數,返回值,附註,使用例子,需求,
聲明:
UINT GetDlgItemInt(
HWNDhDlg, // 視窗句柄
int nIDDlgItem,// 控制項標識符(名稱)
BOOL *lpTranslated, // 布爾變數的指針
BOOLbSigned// 有符號或無符號值
);
例子:int a = GetDlgItemInt(hwndDlg,IDC_a,NULL,TRUE);
注釋:用GetDlgItemInt函式獲取hwndDlg視窗中的IDC_a控制項中輸入的數值並賦給變數a。
參數
- hDlg
對話框(視窗)的句柄。 - nIDDlgItem
指定控制項的文本的標識符(名稱)。 - lpTranslated
[out]指向接收成功或失敗值的變數的指針 (TRUE表示成功,FALSE表示失敗)。
如果此參數為NULL,則該函式不會返回有關成功或失敗的信息。 - bSigned
[in] 指定函式是否應該在開始時檢查減號的文本,並返回一個有符號的整數值,如果它找到一個
(TRUE指定應該檢查,FALSE指定不應該檢查)。
返回值
- 如果函式成功,則由lpTranslated指向的變數設定為TRUE,返回值為轉換的控制項文本。
- 如果函式失敗,則由lpTranslated指向的變數設定為FALSE,返回值為零。 請注意,由於零是可能的轉換值,返回值零並不表示失敗。
- 如果lpTranslated為NULL,則該函式不會返回有關成功或失敗的信息。
- 如果bSigned參數為TRUE,則指定要檢索的值為有符號整數值,則將返回值轉換為int類型。 要獲取擴展錯誤信息,請調用GetLastError。
附註
如果bSigned參數為TRUE,則GetDlgItemInt函式將檢查文本開頭處的減號( - ),並將文本轉換為帶符號的 整數值。 否則,該函式創建無符號整數值。
如果轉換的值大於INT_MAX(對於帶符號)或UINT_MAX(對於無符號數字),GetDlgItemInt函式將返回零。
如果轉換的值大於INT_MAX(對於帶符號)或UINT_MAX(對於無符號數字),GetDlgItemInt函式將返回零。
使用例子
BOOL flag;
UINT ui=GetDlgItemInt(IDC_EDIT1,&flag,true);
CString cs;
cs.Format("%d,%d",ui,flag);
MessageBox(cs);
這裡的第二個參數,主要是為了接收錯誤信息的
- 可能出現的錯誤信息有: ID無效,並且超過指定大小,比如說:ID為12345677,這個就不行. 還有就是輸入不能解析為一個int類型的,比如輸入:"bvbvbvbv","3.5666", 當然後面可以解析為一個浮點型,在這裡取得的值為3,但是還是會有錯誤信息
- 如果不指定第二個參數,就不會獲得任何錯誤信息,這個參數很有用的,對輸入的判斷是否可以解析為int類型或者是否有效,很有用的,我們經常有這個參數來判斷用戶的輸入是否合法
- 參數3:默認的為true,主要是針對"-123",像這樣的字元,它可以把前面的"-"解析為負號,那么就是標準的int類型了,如果設定為false,那么它不可以有負數,因為在這裡的"-"號,被認為是不合法的
需求
Windows NT/2000/XP:包含在Windows NT 3.1及更高版本中
Windows 95/98/Me :包含在Windows 95及更高版本中。
頭檔案 :在Winuser.h中聲明 包括Windows.h。
庫檔案 :使用User32.lib。