关于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指的哪个参数,是什么类型的?第一个参数和第二个参数分别是什么意思(我英文不大好)?谢谢!
...全文
242 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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是一个意思

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧