PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2017-8-31 13:30:49

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

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

x

* Q* ], Y: F/ c7 b9 u0 X9 [一、对话框中显示对话框的方法:  & T; {. ]0 q  R" W* U
1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。  " o- V: H1 o+ L/ |3 y% V
设置这个对话框的属性:  9 o' M) h( W2 [# W4 b8 B- l1 s
1)、“Style”选择“Child”;中文版“样式”选择“下层”。  
6 g3 z6 H" v9 ]; b( B3 l2)、“Border”为“None”;中文版“边框”选择“无”。  
4 {$ I9 z& i; \- ^# J- ]
+ V# h* L% m/ W, ?0 C# {' L4 ~2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。  
) U. t  N) h: v7 }" J* |8 b" L# b. S: M0 T' S- Z1 k7 [5 l; Z
3、得到Pic控件客户区坐标  
5 u: F$ ^& _9 M9 X8 V3 f+ W//CDlgParent.cpp ——OnInitDialog()  
( ]$ U7 J# u2 t& c+ ~. q: Z! O# nCRect rect;  
# J8 m4 \  |2 y, P  W5 E8 `GetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect);  - N! A* M: K! V$ i
ScreenToClient(&rect);   //千万注意别用成ClientToScreen(&rect);  # V- |6 q. p1 B6 a7 D
/ \, V% I5 B; ?( e) y, l: O* o
4、创建并显示对话框  ( Z0 R3 T3 ^) b
方式一:  
$ J8 M* a2 T3 W, e& l/ c//CDlgParent.h  
4 U5 [% `& S. F: {& u1 F2 q1 XCDialog m_InnerDlg;  
" Z) G- u" T6 y( T2 k0 L//CDlgParent.cpp——OnInitDialog()  
- f/ D+ h% o- i) Mm_InnerDlg.Create(IDD_INNER, this);  0 d- M9 P  l# u
m_InnerDlg.MoveWindow(rect);  0 p3 b# M( S& }  U( f. Q: X
m_InnerDlg.ShowWindow( SW_SHOW );  
) |* v8 [4 ?& U+ T1 x6 B
3 s$ V- {& G! e3 R" U方式二:  
' E8 }$ p; y- e/ X* G//CDlgParent.h  
( f6 w3 u3 I3 W" n! ~. o* FCDialog *m_pInnerDlg;    }; m7 X* Z5 Q, R

1 S. _6 H" }* |, y' d* z//CDlgParent.cpp——OnInitDialog()  
2 Z! N: p+ b! Y9 s/ K, N# P. ?m_pInnerDlg = new CDialog();  
; E. X' @# b: x2 O; f2 E( @; }m_pInnerDlg->Create(IDD_INNER, this);  , A) ?& a6 ]" V& I
m_pInnerDlg->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height());  2 `& \% i. e# q0 r2 _/ ?
m_pInnerDlg->ShowWindow( SW_SHOW );  3 o4 t  `: f; L6 R2 \

7 ~/ n. a6 Z; F0 `' F$ [4 z
: t) z' h" g6 E0 [( |; \$ i- \' L& X2 p9 G" B; j( B5 i
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了