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

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

[复制链接]

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

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

admin 楼主

2017-8-31 13:30:49

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

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

x

  i7 G4 K* \3 i' ]+ M; a3 V- ]一、对话框中显示对话框的方法:  
! X3 g$ H8 G0 w) K1 f1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。  " V( y/ @3 D. l! e, M1 {
设置这个对话框的属性:  ' ~6 o; u+ @  j9 m8 G! U4 Q
1)、“Style”选择“Child”;中文版“样式”选择“下层”。  ' X3 q8 f% Z/ R) i* @
2)、“Border”为“None”;中文版“边框”选择“无”。  
! c  E3 r3 I' |' e2 N: d  P" D# F; i+ A& Q
2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。  % o4 U7 N5 ]) T; g3 Y
- d4 A& P" V) _) E: M. B* W: _9 }0 r
3、得到Pic控件客户区坐标  
4 Z1 N" i; v5 C3 [' B2 O//CDlgParent.cpp ——OnInitDialog()  # p8 J6 x. G& Z) _' d
CRect rect;  ; _$ F& Y* S# ~# u/ Z2 v( f- k
GetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect);  ; t# h. u+ O1 F5 {2 i" T+ }8 ?
ScreenToClient(&rect);   //千万注意别用成ClientToScreen(&rect);  
- H9 ?. b" E& _( i, ?$ ?% n/ q5 s2 j
4、创建并显示对话框  - Y+ S3 I% J3 U5 C/ K4 p( L' T* o
方式一:  
& j8 m8 {( w1 I* ?. a) f7 y//CDlgParent.h  $ a, d- ~) G5 d3 O9 h/ Q
CDialog m_InnerDlg;  - p( @; k, y/ w5 d; X
//CDlgParent.cpp——OnInitDialog()  * G) H1 ^- t0 s" B3 I
m_InnerDlg.Create(IDD_INNER, this);  
  n. g6 G& N7 V  i. km_InnerDlg.MoveWindow(rect);  
5 y3 P6 u& q( r1 mm_InnerDlg.ShowWindow( SW_SHOW );  * s; T. Q  H/ u8 M$ S8 Y
$ ~/ o7 N0 X# M$ @/ |- u/ {2 X* I
方式二:  % b( Y3 B8 Z4 u  Y5 g: I
//CDlgParent.h  . e$ ~1 F3 s6 M- A
CDialog *m_pInnerDlg;  
: ]% h0 _5 T4 v+ o2 _) {
  n$ K9 j7 R0 f2 R7 u* t//CDlgParent.cpp——OnInitDialog()  
  d* J1 U4 H* Y9 ym_pInnerDlg = new CDialog();  
( A$ Z+ E/ [# b9 a5 qm_pInnerDlg->Create(IDD_INNER, this);  
( B" r" a- N1 z7 v8 e1 cm_pInnerDlg->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height());  
. L$ _* P' I2 z! l& n% X7 a7 Km_pInnerDlg->ShowWindow( SW_SHOW );  7 M2 e* e  z4 ?+ C: |
, f: _7 t' w/ Y& }7 V

6 G0 A& z2 v9 U  r8 ]! v8 C) n8 j) Z/ @3 ?
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了