CEdit*pEdit = (CEdit*)GetDlgitem(IDC_EDIT1)中 CEdit*与(CEdit*)

飞雪潜入梦2022-10-04 11:39:541条回答

CEdit*pEdit = (CEdit*)GetDlgitem(IDC_EDIT1)中 CEdit*与(CEdit*)带不带括号有什么区别

已提交,审核后显示!提交回复

共1条回复
qqq518812 共回答了18个问题 | 采纳率94.4%
CWnd *pWnd = GetDlgItem(IDC_EDIT1);
GetDlgItem得到的是CWnd的指针
你要转化成CEdit的指针,就必须强制转化 CEdit *pEdit = (CEdit *)pWnd;
带括号是强制转化的意思
去掉括号是无法编译的
1年前

相关推荐

GetDlgItem的用法
yueyonghao1年前1
龙凤布丁 共回答了23个问题 | 采纳率91.3%
CButton* btn = (CButton*)GetDlgItem(IDC_BUTTON_SEND);
btn-SetWindowTextW(_T("hello"));如果想得到其他对话框中的控件,用GetDlgItem(hwnd,IDD);
CWnd::GetDlgItem(int nID)
这个是一个类成员函数,可使用CWnd* pWnd = GetDlgItem(ID_XXX);
而HWND GetDlgItem(
HWND hDlg, // handle of dialog box
int nIDDlgItem // identifier of control);
是一个sdk的函数
两个的主要区别是用的地方不一样
一个参数的是在窗口中调用的函数,两个参数的是在平台SDK中调用的
你在对话框类里面调用GetDlgItem(IDC_BOARD_SIZE),就是调用的类成员函数CWnd::GetDlgItem
获得某个控件的句柄GetDlgItem(IDC_BOARD_SIZE)-m_hWnd就可以了
如果要用到第二种用法,要这样
::GetDlgItem(this- m_hWnd,IDC_BOARD_SIZE);效果一样的
那个IDC_BOARD_SIZE是你某个控件的id,
如果HWND GetDlgItem(
HWND hDlg, // handle of dialog box
int nIDDlgItem // identifier of control);的话,
第一个参数是窗体的句柄,第二个参数是某个控件的ID,和IDC_BOARD_SIZE是一个意思
GetDlgItem(IDC_..),GetDlgItem(HWND hWnd,
GetDlgItem(IDC_..)是一个非静态方法,意思是你对话框内获取该控件指针,所以这里不需要获取对话框句柄,也就是说你如果在非对话框窗口里面调用这个方法就肯定会出错
GetDlgItem(HWND hWnd, IDC_..)是一个静态方法,它是一个让你指定从哪个对话框里获取控件指针
举个例子:你调用了上厕所这个函数,如果你在家里的话肯定是在自己家里上厕所,所以不需要知道在哪里上厕所(hwnd)
如果你在室外那么上厕所就一定要选一个地方(hwnd).
如果说你上厕所的地方都不是一个房间,那么肯定会报错嘛,因为你在随地大小便,哈哈所以你先搞清楚这两个函数的使用环境区别
GetDlgItem的用法
一九九八1年前1
胖佛爷 共回答了18个问题 | 采纳率88.9%
CButton* btn = (CButton*)GetDlgItem(IDC_BUTTON_SEND);x0dbtn-SetWindowTextW(_T("hello"));如果想得到其他对话框中的控件,用GetDlgItem(hwnd,IDD);x0dCWnd::GetDlgItem(int nID)x0d这个是一个类成员函数,可使用CWnd* pWnd = GetDlgItem(ID_XXX);x0d而HWND GetDlgItem(x0dHWND hDlg, // handle of dialog boxx0dint nIDDlgItem // identifier of control);x0d是一个sdk的函数x0d两个的主要区别是用的地方不一样x0d一个参数的是在窗口中调用的函数,两个参数的是在平台SDK中调用的x0d你在对话框类里面调用GetDlgItem(IDC_BOARD_SIZE),就是调用的类成员函数CWnd::GetDlgItemx0d获得某个控件的句柄GetDlgItem(IDC_BOARD_SIZE)-m_hWnd就可以了x0d如果要用到第二种用法,要这样x0d::GetDlgItem(this- m_hWnd,IDC_BOARD_SIZE);效果一样的x0d那个IDC_BOARD_SIZE是你某个控件的id,x0d如果HWND GetDlgItem(x0dHWND hDlg, // handle of dialog boxx0dint nIDDlgItem // identifier of control);的话,x0d第一个参数是窗体的句柄,第二个参数是某个控件的ID,和IDC_BOARD_SIZE是一个意思x0dGetDlgItem(IDC_..),GetDlgItem(HWND hWnd,x0dGetDlgItem(IDC_..)是一个非静态方法,意思是你对话框内获取该控件指针,所以这里不需要获取对话框句柄,也就是说你如果在非对话框窗口里面调用这个方法就肯定会出错x0dGetDlgItem(HWND hWnd, IDC_..)是一个静态方法,它是一个让你指定从哪个对话框里获取控件指针x0d举个例子:你调用了上厕所这个函数,如果你在家里的话肯定是在自己家里上厕所,所以不需要知道在哪里上厕所(hwnd)x0d如果你在室外那么上厕所就一定要选一个地方(hwnd).x0d如果说你上厕所的地方都不是一个房间,那么肯定会报错嘛,因为你在随地大小便,哈哈所以你先搞清楚这两个函数的使用环境区别