VC获取对话框句柄问题

各位大虾:求教我用voidCTestDlg::OnButton1(){CTestA*NewForm=newCTestA;NewForm->Create(IDD_TestA... 各位大虾:
求教我用
void CTestDlg::OnButton1()
{
CTestA *NewForm = new CTestA;
NewForm->Create(IDD_TestA_DIALOG,this);
NewForm->ShowWindow(SW_SHOW);
}
创建了一个非模态对话框,因为要判断窗口是否显示,需要用到 IsWindow ,然后通过 HWND 判断,请问如何获得新窗口的这个窗口句柄呢?小弟初学,十分感谢。
展开
 我来答
易彦知守
2012-03-01
知道答主
回答量:29
采纳率:0%
帮助的人:17.7万
展开全部
CTestDlg 类中 声明 CTestA *NewForm;
然后
void CTestDlg::OnButton1()
{
NewForm=new CTestA;
NewForm->Create(IDD_TestA_DIALOG,this);
NewForm->ShowWindow(SW_SHOW);
}

然后
void CTestDlg::OnButton2()
{
if(::IsWindow(NewForm->GetSafeHwnd()))
{
if(::IsWindowVisible(NewForm->GetSafeHwnd()))
{
AfxMessageBox("窗体存在");
}
else
{
AfxMessageBox("窗体不存在");
}
}
}

最后别忘了在新窗口中重载
void CTestADlg::PostNcDestroy()
{
delete this;
CDialog::PostNcDestroy();
}
a36254094
2012-02-28 · TA获得超过208个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:176万
展开全部
晕啊,你这个函数写的有问题。
void CTestDlg::OnButton1()
{
CTestA *NewForm = new CTestA;
NewForm->Create(IDD_TestA_DIALOG,this);
NewForm->ShowWindow(SW_SHOW);
}
NewForm 这个指针的局部变量,当这个函数结束的时候就自动析构了,你肯定就找不到了。你把NewForm 定义成CTestDlg的成员变量就好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丨花自飘零丨
2012-02-24 · TA获得超过598个赞
知道小有建树答主
回答量:417
采纳率:0%
帮助的人:357万
展开全部
教你一个好方法:对话框也是继承CWnd类的,所以他也有个成员变量m_hWnd,所以选取新窗口的句柄只需要打个.调用(如果是指针就->)
好好学吧!
更多追问追答
追问
大哥,非常感谢,我在类的 Public 中 添加了 HWND hWnd;然后
void CTestDlg::OnButton1()
{
CTestA *NewForm = new CTestA;
NewForm->Create(IDD_TestA_DIALOG,this);
NewForm->ShowWindow(SW_SHOW);
hWnd=NewForm->m_hWnd; //添加了此处
}
如上,建立了对话框后得到了 hWnd ,可新对话框关闭后这个 hWnd 值还是存在,如何解决?我不希望用的全局变量,谢谢指导。
追答
不懂你要用个变量hWnd=NewForm->m_hWnd;  保存它做什么?既然你不希望关闭对话框后这个 hWnd 值还是存在,那你直接用的时候就用NewForm->m_hWnd这个啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
何处淬吴钩
2012-02-24 · TA获得超过5045个赞
知道大有可为答主
回答量:2947
采纳率:50%
帮助的人:2420万
展开全部
mfc中的窗口对象都派生于CWnd类,获得窗口句柄用GetSafeHwnd() ,判断窗口是否存在用 IsWindow
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JZ_Jack
2012-02-24 · TA获得超过428个赞
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:295万
展开全部
NewForm->GetSafeHwnd()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式