首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cwnd返回未定义值

Cwnd返回未定义值
EN

Stack Overflow用户
提问于 2010-01-28 13:13:04
回答 1查看 366关注 0票数 0

我想在全局函数中使用Setwindowpos()来更改一个对话框的位置。所以我编写了如下代码

代码语言:javascript
复制
CWnd *pWnd = (CWnd*)pMain->GetDlgItem(IDD_TOOLBAR_DIALOG);//GetActiveFrame ();
pWnd->SetWindowPos(&CWnd::wndBottom,0,80,45,900,SWP_SHOWWINDOW);

pWnd作为未定义的值返回。所以我遵循这个方法

代码语言:javascript
复制
CToolTab * tab;
tab = new CToolTab();
if(tab->GetSafeHwnd() == 0)
{
 tab = new CToolTab();
 if( tab->m_hWnd != NULL )
 {
 tab->SetWindowPos(&CWnd::wndBottom,0,80,45,900,SWP_SHOWWINDOW);   }
}

但是m_hWnd返回0x0000,所以在这两种情况下,SetWindowPos都会显示断言错误。如何在全局函数中获取对话框的句柄?

EN

回答 1

Stack Overflow用户

发布于 2010-02-03 03:38:26

好的,我仔细考虑了一下--然后我想到IDD_TOOLBAR_DIALOG几乎肯定是对话框本身的资源id,而不是对话框上的控件。您不能调用引用对话框资源ID的GetDlgItem并期望找到包含它的窗口(它根本不起作用,您将返回一个空的CWnd*指针)。

pMain指向的是什么?应用程序的主窗口?这是对话框的父对象吗?

在代码中的什么地方创建要移动的对话框?在这一点上,你必须拥有一个有效的CWnd派生对象?一种解决方案是将该成员变量保留为成员变量,以便以后在必要时调用SetWindowPos。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2152447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档