PLM之家PLMHome-工业软件践行者

[资料] MFC 在父对话框中内嵌子对话框

[复制链接]

2017-8-31 13:30:49 2715 0

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2017-8-31 13:30:49 | 显示全部楼层 |阅读模式

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x

4 t; @9 ~5 W9 ^一、对话框中显示对话框的方法:    R* Q4 z9 p4 V/ J, k. d  a
1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。  
0 r- F# B) A; }! A& V' J6 G设置这个对话框的属性:  
% E, ]7 x- a+ ^: y- `, v1)、“Style”选择“Child”;中文版“样式”选择“下层”。  : r4 N3 m; h0 d: \
2)、“Border”为“None”;中文版“边框”选择“无”。  
3 B- F! l6 X! A2 @( R
! p& I- S" u* T- e4 w% c" n2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。  ; ?! p  B1 E) k' K  ~, ~

8 b3 q8 S& p% S/ Z7 j" U. t3、得到Pic控件客户区坐标  
% U* I' x! J' F: f% C. L//CDlgParent.cpp ——OnInitDialog()    m2 C9 ]# r, V, E8 f
CRect rect;    u: Z7 A0 n) ?4 U
GetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect);  
' C& e! q* Y& o  a) M, nScreenToClient(&rect);   //千万注意别用成ClientToScreen(&rect);  
' o+ ^6 P$ t1 x  R, ~$ h, `& L5 }% X. S2 P* p/ z' V
4、创建并显示对话框  : l, H& v1 R; i* d  K  s" g6 B
方式一:  
% i" X6 l# [3 P( c//CDlgParent.h  - e. G! u5 u  U9 i3 x/ l9 n
CDialog m_InnerDlg;  
1 V3 ^& ?; Z3 ?# M0 x4 w3 S//CDlgParent.cpp——OnInitDialog()  
5 Y+ f* N! T. w; C& S( zm_InnerDlg.Create(IDD_INNER, this);  
7 h! \7 [5 p) A' T$ `m_InnerDlg.MoveWindow(rect);  ; I$ f$ B4 I8 c/ D; i5 R1 [$ v. v
m_InnerDlg.ShowWindow( SW_SHOW );  & g' L2 _: q# r  D

$ _, u2 t6 g* E1 P$ f方式二:  
& u7 v* L# Q  {; {7 U//CDlgParent.h  
! s& K3 \6 ]2 Y/ L4 J% L( ^CDialog *m_pInnerDlg;  
4 R& Z8 ]* a; }
+ g4 P; N' x; ?  w$ J! ~% t//CDlgParent.cpp——OnInitDialog()  
/ C% u3 d0 y5 d5 l& I' Gm_pInnerDlg = new CDialog();  % G; x- x: A5 b
m_pInnerDlg->Create(IDD_INNER, this);  & Q7 w) _4 y) ]. x7 V
m_pInnerDlg->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height());  2 K' Y" i! K$ p( ~9 B# y: a
m_pInnerDlg->ShowWindow( SW_SHOW );  4 x( t# B' r! R

5 A. S" H1 `, X" ^: b; s4 E, z( N! T2 f5 ~5 @# }8 p; N* e9 }' {2 m
' g* e! B# I% x3 Q3 V6 G9 P' b
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了