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

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

[复制链接]

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

admin 发表于 2017-8-31 13:30:49 |阅读模式

admin 楼主

2017-8-31 13:30:49

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

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

x

* H6 T: `# R% f6 l0 D8 w# o一、对话框中显示对话框的方法:  
% N5 `2 ?3 t( }7 ]0 Z1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。  0 u9 n( }  L% W( \  g
设置这个对话框的属性:  
8 W; F+ _5 D- c1)、“Style”选择“Child”;中文版“样式”选择“下层”。  % N5 W- S) [0 g/ d; t# ^) @' t/ K7 `
2)、“Border”为“None”;中文版“边框”选择“无”。  . j# {& z8 J" N0 B5 ?

% r1 ?, Y4 u/ V; a0 Q4 e4 u/ `2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。  ( {) l' @$ v: X: a6 ~) G/ S( Q
, K/ j% _5 U, Y* R" B5 w
3、得到Pic控件客户区坐标  
! X4 _5 V; g: n8 M. @( _: Z//CDlgParent.cpp ——OnInitDialog()  # D& x7 v, E7 r5 O8 B" k3 ]6 q# a
CRect rect;  
$ V7 o8 x: |$ J1 }$ YGetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect);  - y+ W7 U6 P8 a  R& _
ScreenToClient(&rect);   //千万注意别用成ClientToScreen(&rect);  " k$ L" s2 u  x+ a  _
) ?. r, ?4 }- ?$ L3 \* C' Z, L1 ^
4、创建并显示对话框  
' A' z+ Y3 }, n$ T0 ^方式一:  
9 _. L7 A/ ]$ J+ d* Y; E& Y: U; ^//CDlgParent.h  
1 M; P! q6 D& y" K' W5 FCDialog m_InnerDlg;  * _. l1 J% @7 N% ]5 r
//CDlgParent.cpp——OnInitDialog()  
# X" V, h" d( I- c% }6 um_InnerDlg.Create(IDD_INNER, this);  
: Y4 `+ `  G; S) m. Z' }m_InnerDlg.MoveWindow(rect);  2 \5 y3 X" `+ Z3 a: q6 G
m_InnerDlg.ShowWindow( SW_SHOW );  * _! ^; N. ]$ e6 ], h( C

1 E1 q+ a7 I7 ^, V+ `方式二:  
4 U: G/ s( C% i# O6 X5 C. L//CDlgParent.h  
; N8 N5 Z; T: X3 NCDialog *m_pInnerDlg;  2 ~# d2 j/ [5 F) @4 E
$ ^. e) i: i4 G2 Z
//CDlgParent.cpp——OnInitDialog()  - k6 H) {) N- Y. a6 ~
m_pInnerDlg = new CDialog();  
( L& c. y" Y( ?3 ^7 ^( Z% Zm_pInnerDlg->Create(IDD_INNER, this);  8 O& f. G  ?' R+ \( _
m_pInnerDlg->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height());  " s% U: I  q) v# X7 \* [2 K+ n
m_pInnerDlg->ShowWindow( SW_SHOW );  
# v( {% R% p3 y# C
3 r% `" [1 s( `. E" \+ u
2 `7 w- B. w; a& s. o/ r
8 c; C3 {' Z8 i/ U/ 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二次开发专题模块培训报名开始啦

    我知道了