GetDlgItem
GetDlgItemText是C++中的函數(shù),調(diào)用這個(gè)函數(shù)以獲得與對(duì)話框中的控件相關(guān)的標(biāo)題或文本。GetDlgItemText成員函數(shù)將文本拷貝到lpStr指向的位置并返回拷貝的字節(jié)的數(shù)目。
函數(shù)說(shuō)明
CWnd類的成員函數(shù)。
函數(shù)原型
int GetDlgItemText( HWND hDlg , int nID, LPTSTR lpStr, int nMaxCount) const;
int GetDlgItemText( int nID, CString& rString) const;
參數(shù)
nID 指定了要獲取其標(biāo)題的控件的整數(shù)標(biāo)識(shí)符。 lpStr 指向要接收控件的標(biāo)題或文本的緩沖區(qū)。 nMaxCount 指定了要拷貝到lpStr的字符串的最大長(zhǎng)度(以字節(jié)為單位)。如果字符串比nMaxCount要長(zhǎng),它將被截?cái)唷?rString 對(duì)一個(gè)CString對(duì)象的引用。
返回值
如果函數(shù)調(diào)用成功,返回值為拷貝到緩沖區(qū)中的 TCHAR 字符個(gè)數(shù)(不包括結(jié)束空字符)。
如果函數(shù)調(diào)用失敗,返回值為 0 。要獲取更多錯(cuò)誤信息,請(qǐng)調(diào)用 GetLastError 函數(shù)。
說(shuō)明
如果字符串的長(zhǎng)度大于緩沖區(qū)的長(zhǎng)度,則會(huì)被截?cái)?#xff0c;并以空字符結(jié)束。
GetDlgItemText 函數(shù)向控件發(fā)送一條 WM_GETTEXT 消息。
在 ANSI 版本中,長(zhǎng)度指的是字節(jié)數(shù),在 Unicode 版本中,長(zhǎng)度指的是字符的個(gè)數(shù)。
系統(tǒng)要求
動(dòng)態(tài)鏈接庫(kù):user32.dll
頭文件:在Winuser.h中定義,需包含Windows.h文件
庫(kù)文件:User32.lib
最低操作系統(tǒng):Windows 95, Windows NT 3.1
Unicode:實(shí)現(xiàn)為ANSI和Unicode兩種版本
SetDlgItemText是一種函數(shù),功能是設(shè)置對(duì)話框中控件的文本和標(biāo)題。函數(shù)原型是BOOLSetDlgltemText(HWND hDlg,int nlDDlgltem,LPCTSTR IpString)
函數(shù)功能
該函數(shù)設(shè)置對(duì)話框中控件的文本和標(biāo)題。
BOOLSetDlgltemText(HWND hDlg,int nlDDlgltem,LPCTSTR IpString);
參數(shù)
hDlg:指定含有控件的對(duì)話框。
nlDDlgltem:標(biāo)識(shí)帶有將被設(shè)置的標(biāo)題和文本的控件。
IpString:指向一個(gè)以NULL結(jié)尾的字符串指針,該字符串指針包含了將被復(fù)制到控件的文本。
返回值:如果函數(shù)調(diào)用成功,則返回值為非零值。如果函數(shù)調(diào)用失敗,則返回值為零。若想獲得更多的錯(cuò)誤信息,請(qǐng)調(diào)用GetLastError函數(shù)。
使用例子
CTime ctime=CTime::GetCurrentTime(); //得到當(dāng)前系統(tǒng)時(shí)間
CString strTime=time.Format("%H:%M:%S");
::SetDlgItemText(AfxGetMainWnd()->m_hWnd,IDC_TIME,strTime); //送到指定控件
在vc6.0以后的版本中不支持AfxGetMainWnd()->m_hWnd來(lái)獲取HWND,所以需要把這一句改為:
SetDlgItemText(AfxGetApp()->m_pMainWnd->m_hWnd,IDC_TIME, strTime);
在VS中需要去掉第一個(gè)參數(shù),直接SetDlgItemText(IDC_TIME, strTime);
備注:SetDlgltem函數(shù)把一個(gè)WM_SETTEXT消息發(fā)送到指定的控件。
速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows CE:1.0及以上版本;頭文件:winuser.h;庫(kù)文件:user32.lib;Unicode:在Windows NT上實(shí)現(xiàn)為Unicode和ANSI兩種版本
3.GetDlgItem
GetDlgItem,是根據(jù)繼承關(guān)系的函數(shù)功能,返回窗口中指定參數(shù)ID的子元素的句柄,可以通過(guò)返回的句柄對(duì)窗口內(nèi)的子元素進(jìn)行操作。
函數(shù)說(shuō)明
編輯
根據(jù)繼承關(guān)系,有如下幾類:
1).CWindow::GetDlgItem
HWND GetDlgItem( intnID)const;
說(shuō)明——
參數(shù) nID:接收消息的控件的標(biāo)識(shí);
返回值:標(biāo)識(shí)所標(biāo)記的控制窗口句柄;
2).CWnd::GetDlgItem
CWnd* GetDlgItem ( intnID) const;
void CWnd::GetDlgItem( int nID, HWND phWnd) const;
說(shuō)明——
參數(shù) nID:接收消息的控件的標(biāo)識(shí);
參數(shù)phWnd:子類窗口的指針;
返回值:標(biāo)識(shí)所標(biāo)記的控件(或子類窗口)的指針;
Example
// Uses GetDlgItem to return a pointer to a user interface control.
CEdit pBoxOne;
pBoxOne = (CEdit*) GetDlgItem(IDC_EDIT1);
GotoDlgCtrl(pBoxOne);
3).Windows SDK
HWND GetDlgItem(
HWNDhDlg, // handle to dialog box
intnIDDlgItem// control identifier
);
參數(shù)說(shuō)明:
hDlg:標(biāo)識(shí)含有控件的對(duì)話框。
nlDDlgltem:指定將被檢索的控件標(biāo)識(shí)符。
返回值:如果函數(shù)調(diào)用成功則返回值為給定控件的窗口句柄。如果函數(shù)調(diào)用失敗,則返回值為NULL,表示為一個(gè)無(wú)效的對(duì)話框句柄或一個(gè)不存在的控件。若想獲得更多錯(cuò)誤信息,請(qǐng)調(diào)用GetLastError函數(shù)。
備注:可以通過(guò)使用任何父子窗口對(duì)來(lái)使用GetDlgltem函數(shù),而不僅只是對(duì)話框。只要hDlg參數(shù)指定一個(gè)父窗口,且子窗口有一個(gè)獨(dú)立的標(biāo)識(shí)符(象CreateWindow中hMenu參數(shù)指定的或創(chuàng)建子窗口的CreateWindowEx指定的那樣),GetDlgltem就會(huì)返回一個(gè)有效的句柄到子窗口。
Windows CE:GetDlgltem函數(shù)只為對(duì)話框中的直接于控制工作,它不通過(guò)嵌套的對(duì)話框來(lái)搜尋。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;頭文件:winuser.h;庫(kù)文件:user32.lib。
多數(shù)以GetDlgitem(控件標(biāo)識(shí)符)來(lái)使用
總結(jié)
以上是生活随笔為你收集整理的GetDlgItem的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 读写ini文件
- 下一篇: 利用qsort二级排序