如何在一个对话框的确定区域显示另一对话框

chongwenwang 2007-09-05 06:17:32
例如:对话框dlg1有确定,取消按扭,当我按下确定按扭时在dlg1右边显示 dlg2对话框同时在dlg1的下方显示dlg3对话框,dlg2,dlg3都在dlg1内显示
...全文
236 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chongwenwang 2007-09-07
  • 打赏
  • 举报
回复
可以了 分数奉上
lyg_zy 2007-09-07
  • 打赏
  • 举报
回复
我现在的问题关键是不能把dlg1当成客户区 显示不是相对于dlg1
--------------------------------
资源编辑器里修改dlg2的属性
style: child
border : none
chongwenwang 2007-09-07
  • 打赏
  • 举报
回复
我现在的问题关键是不能把dlg1当成客户区 显示不是相对于dlg1
qzuo82 2007-09-07
  • 打赏
  • 举报
回复
在MoveWindow前加ClientToScreen(&rc)试试。
chongwenwang 2007-09-07
  • 打赏
  • 举报
回复
我按你的方法试了以下
if( dlg2.m_hWnd ==NULL)
{
dlg2.Create(IDD_DIALOG1,this);

}
CRect rc;
this->GetClientRect(&rc);
dlg2.MoveWindow(&rc,true);
dlg2.ShowWindow(SW_SHOW);
这段代码是在dlg1的OnInitDialog()函数里头的
dlg2 是在dlg中声明的 是dlg1的成员数据 但是还是不行dlg2并没有覆盖dlg1啊 还是取得的坐标dlg2的显示是相对于屏幕原点,不是相对于dlg1的原点
lyg_zy 2007-09-06
  • 打赏
  • 举报
回复
CDialog2 dlg2要提升为类成员变量。
重新给你写一下:

.h
CDialog2 m_dlg2;

.cpp
if( m_dlg2.m_hWnd ==NULL)
{
dlg2.Create( IDD_DIALOG2, dlg1);
}
CRect rc;
//此处自己计算矩形区域
m_dlg2.MoveWind(rc );
m_dlg2.ShowWindow(SW_SHOW);

dlg3同理




lyg_zy 2007-09-06
  • 打赏
  • 举报
回复
CDialog dlg2;
dlg2.Create( IDD_DIALOG2, dlg1);
CRect rc;
//此处自己计算矩形区域
dlg2.MoveWind(rc );
dlg2.ShowWindow(SW_SHOW);

dlg3同理。
向立天 2007-09-06
  • 打赏
  • 举报
回复
怎么将dlg2设置为dlg1的子窗口啊
---------------------------------
创建dlg2时为其指定父窗口
chongwenwang 2007-09-06
  • 打赏
  • 举报
回复
怎么将dlg2设置为dlg1的子窗口啊
WindAndSnow 2007-09-06
  • 打赏
  • 举报
回复
把dlg2,3做为1的子窗口,获得dlg1的客户区,直接MoveWindow或者SetWindowPos,
jhs1982419 2007-09-06
  • 打赏
  • 举报
回复
先创建你需要的对话框后,在该对话框函数代码部分直接movewindow就可以了.
chongwenwang 2007-09-05
  • 打赏
  • 举报
回复
取得的坐标都是相对于dlg1的可是显示的时候是相对于屏幕原点
ouyh12345 2007-09-05
  • 打赏
  • 举报
回复
在调用DoModal之前,向对象传入区域坐标,然后在目的对话框的OnInitDialog里MoveWindow
chongwenwang 2007-09-05
  • 打赏
  • 举报
回复
请给个具体实例

15,978

社区成员

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

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