为什么在对话框的OnInitDialog处理函数中无法获取Datagrid控件的窗口句柄?

yeyuboy 2005-03-08 09:13:42
我在对话框(无模式,可变尺寸)上放置了一个Datagrid控件,因为要获取Datagrid的控件的句柄以进行某些窗口设置,当调用GetDlgItem(IDC_DATAGRID1)时(IDC_DATAGRID1为Datagrid控件的ID),返回值总为0,请问这是为什么?
...全文
128 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanqing 2005-03-25
  • 打赏
  • 举报
回复
gz
yeyuboy 2005-03-09
  • 打赏
  • 举报
回复
因为要考虑用于非VC环境,我原来的代码是SDK风格;原来获取子窗口句柄的方式为:
HWND hwndChild = ::GetDlgItem(hParentWnd, IDC_CHILDWNDID)
现在将代码改成MFC风格:
CWND* lpChildWnd = lpParendDlg->GetDlgItem(IDC_CHILDWNDID);
if(lpChildWnd)
HWND hwndChild = lpChildWnd->GetSafeHwnd();
竟然又可以了,我的对话框上还放了TAB控件,用SDK代码获取子窗口句柄的方式可以工作,但不知道为什么用于DATAGRID控件时,又不行。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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