关于GetDlgItem函数的提问

smlboy2005 2005-07-25 10:50:52
我在很多地方都看到类似这样的使用 GetDlgItem(IDC_BOARD_SIZE) , 但是在MSDN上面写着的是标准调用是
HWND GetDlgItem(
HWND hDlg, // handle of dialog box
int nIDDlgItem // identifier of control
);
为什么现在的调用只有一个参数,还有,IDC_BOARD_SIZE指的哪个参数,是什么类型的?第一个参数和第二个参数分别是什么意思(我英文不大好)?谢谢!
...全文
212 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
psbeond 2005-07-25
区别楼上的都说了,我补充一下与主题无关的内容:GetDlgItem并不是只能得到对话框里控件的窗口指针,其实你从CWnd派生一个类,在这个派生类中再创建一些button,edit等控件,也可以用GetDlgItem得到它们的窗口句柄。
回复
linur 2005-07-25
CWnd::GetDlgItem(int nID)只是对SDK函数包装了一下,调用起来更方便些,不用指定hDlg而已
回复
goodboyws 2005-07-25
MFC VS SDK
回复
legendhui 2005-07-25
两个的主要区别是用的地方不一样
一个参数的是在窗口中调用的函数,两个参数的是在平台SDK中调用的
HWND GetDlgItem(
HWND hDlg, // handle of dialog box窗口句柄
int nIDDlgItem // identifier of control控件ID
);
回复
handsomerun 2005-07-25
呵呵,你看到的那个是
CWnd::GetDlgItem(int nID)
这个是一个类成员函数

而HWND GetDlgItem(
HWND hDlg, // handle of dialog box
int nIDDlgItem // identifier of control
);
是一个sdk的函数

你在对话框累里面调用GetDlgItem(IDC_BOARD_SIZE),就是调用的类成员函数CWnd::GetDlgItem

如果要用到第二种用法,要这样
::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是一个意思
回复
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2005-07-25 10:50
社区公告
暂无公告