!!!!求救::MFC42D.DLL 0XC0000005 Access Violation

dasiu 2005-02-21 03:35:30
我在CPropertyPage的继承类CSetUsersInforAddP2中,通过ID号IDC_COMBO1找到页面的某一个控件,但编译错误:
该函数如下:

BOOL CSetUsersInforAddP2::OnInitDialog()
{
CPropertyPage::OnInitDialog();

HWND* phWnd=NULL;
GetDlgItem(IDC_COMBO1,phWnd);//运行错误!*****
CComboBox combo;
combo.Attach(*phWnd);
combo.Clear();
........

return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}

通过调试,发现问题的地方在:
void CWnd::GetDlgItem(int nID, HWND* phWnd) const
{
ASSERT(::IsWindow(m_hWnd));
ASSERT(phWnd != NULL);

if (m_pCtrlCont == NULL)
*phWnd = ::GetDlgItem(m_hWnd, nID) ;//错误地方
else
m_pCtrlCont->GetDlgItem(nID, phWnd);
}
请问:这个问题如何解决?在CPAGEPROPERTY页面初始化的时候,如何找到某个控件的句柄等,并进行操作???
谢谢!!!!!!!!
...全文
318 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dasiu 2005-02-25
  • 打赏
  • 举报
回复
是否是不可以直接得到HWND?这是为什么?
老夏Max 2005-02-21
  • 打赏
  • 举报
回复
CWnd *pWnd = GetDlgItem(IDC_COMBO1);
HWND hwnd = pWnd->GetSafeHwnd();
老夏Max 2005-02-21
  • 打赏
  • 举报
回复
phWnd 不能为空!

15,980

社区成员

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

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