非模态对话框

haidei709885067 2011-03-24 10:08:09
偶还是菜鸟,求教一个问题。
怎么创建和销毁一个非模态对话框(已有父窗口)
想实现的功能是在CListCtrl中右键弹出选择行记录属性对话框,在不关闭对话框的情况下选择另一行记录,刷新选择记录属性到对话框,跪求实现啊
...全文
86 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-03-24
  • 打赏
  • 举报
回复
创建就是通过new和create
销毁通过DestroyWindow和Delete
这篇文章中的Tab选项页就是通过非模态对话框实现的
你可以参考一下
http://blog.csdn.net/xianglitian/archive/2010/05/23/5618814.aspx
haidei709885067 2011-03-24
  • 打赏
  • 举报
回复
3楼的方法会出现一闪而过的现象,应该还需要加入消息循环吧。
我是在主窗口创建的对话框对象 ,在子对话框(非模态对话框类)中重载PostNcDestroy()和OnCancel()函数时,delete this 出了错误。
singwhatiwanna 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ulfsaar 的回复:]
假设C_XXXDialog是一个与resource关联好了的Class
C_XXXDialog* pDlg = new C_XXXDialog();
pDlg->Create(IDD_DIALOG_XXX,this);
pDlg->ShowWindow(SW_SHOW);

这样创建的就是非模态对话框了,pDlg->ShowWindow(SW_SHOW)是为了让该对话框show出来
[/Quote]
楼上说的是如何创建非模态对话框。创建后要把句柄给保存下,当你选择另一行的时候,根据窗体的句柄更新内容。
另外就是非模态对话框的销毁问题,重载其PostNcDestroy和OnCancel函数。参见网上非模态对话框的销毁。
void CSGChatDlg::PostNcDestroy()
{
// TODO: Add your specialized code here and/or call the base class
CDialog::PostNcDestroy();
delete this;
}

void CSGChatDlg::OnCancel()
{
DestroyWindow();
}
Ulfsaar 2011-03-24
  • 打赏
  • 举报
回复
销毁的话用pDlg。DestroyWindow()就好了
楼上的两位都说的有道理,应该从基础学起
Ulfsaar 2011-03-24
  • 打赏
  • 举报
回复
假设C_XXXDialog是一个与resource关联好了的Class
C_XXXDialog* pDlg = new C_XXXDialog();
pDlg->Create(IDD_DIALOG_XXX,this);
pDlg->ShowWindow(SW_SHOW);

这样创建的就是非模态对话框了,pDlg->ShowWindow(SW_SHOW)是为了让该对话框show出来
一名程序员 2011-03-24
  • 打赏
  • 举报
回复
《Visual C++技术内幕》
I_NBFA 2011-03-24
  • 打赏
  • 举报
回复
看书吧,新手更应该踏实看书不是么?基础的基础
Wang471981125 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 visualeleven 的回复:]
C/C++ code
CXXDlg* pDlg = new CXXDlg;
pDlg->Create(...);
pDlg->ShowWindow(SW_SHOW);

...

pDlg->DestroyWindow();
delete pDlg;
pDlg = NULL;
[/Quote]
确实
以前用的方法
Eleven 2011-03-24
  • 打赏
  • 举报
回复
CXXDlg* pDlg = new CXXDlg;
pDlg->Create(...);
pDlg->ShowWindow(SW_SHOW);

...

pDlg->DestroyWindow();
delete pDlg;
pDlg = NULL;

15,979

社区成员

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

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