您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> VC/MFC >> CMainFrame中调用GetDlgItem为什么会返回NULL?

CMainFrame中调用GetDlgItem为什么会返回NULL?

来源:网络整理     时间:2016/7/9 10:54:18     关键词:

关于网友提出的“ CMainFrame中调用GetDlgItem为什么会返回NULL?”问题疑问,本网通过在网上对“ CMainFrame中调用GetDlgItem为什么会返回NULL?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: CMainFrame中调用GetDlgItem为什么会返回NULL?
描述:

SDI程序,打算进行多视图切换(该目标已经实现),但是对有个地方不解,请大家帮忙看看,不甚感激;
void CMainFrame::SwitchToForm(int nForm)
{
......
CView *pNewActiveView=(CView*)GetDlgItem(nForm);    //就是该句
......
}
不管给nForm传入的值是CFormView类ID、CDialog类ID、Menu类ID等,GetDlgItem(nForm)返回的都是NULL;
后来把该句换成:
HWND hWnd = ::GetDlgItem(m_hWnd,nForm);
DWORD x = GetLastError();
CView *pNewActiveView = (CView*)CWnd::FromHandle(hWnd);
发现x的值始终都是1421(Control ID not found,控件ID未找到),但是传入的nFrom明明在resource.h中存在的,本人认为出现1421这个错误应该是因为nForm这个ID不是CMainFrame的Item。
小弟想问的就是:什么情况下某ID才是某CWnd的Item?
不甚感激。


以上介绍了“ CMainFrame中调用GetDlgItem为什么会返回NULL?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2450865.html

相关图片

相关文章