|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
. h. I6 N* B9 \ }; }3 C$ p' t
一、对话框中显示对话框的方法: x8 c2 ]( f: |2 d4 Y( c- U
1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。
6 @7 z+ j% } l: E4 b设置这个对话框的属性: 7 k+ ?* c, m0 c2 B9 Q
1)、“Style”选择“Child”;中文版“样式”选择“下层”。 " }1 E. \3 H2 T) e
2)、“Border”为“None”;中文版“边框”选择“无”。 % [$ F( I' l& |1 @$ p
3 G+ g Q* [/ O* y3 P2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。
- T0 x5 S( s+ j, H) M# H4 s% W
$ U5 f1 u' G R6 f3、得到Pic控件客户区坐标 # o0 p K& J* ^) ~" q
//CDlgParent.cpp ——OnInitDialog() 8 y+ ^/ F! V- i4 K8 m# s
CRect rect;
6 y$ X8 H) a E* Q/ z) S- t$ }GetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect); s8 o: F, k8 M9 G' J6 c
ScreenToClient(&rect); //千万注意别用成ClientToScreen(&rect); 0 O/ D$ C0 w& w1 A( ]
- F0 z9 x+ K0 _8 T. f% r
4、创建并显示对话框
& G, Z* s( A# S方式一:
$ e% |* F; s. e: D$ F( h//CDlgParent.h 1 ?! U. R! a; M& x8 l0 J. {, W
CDialog m_InnerDlg; ; l i' H0 n/ |2 C# v2 H+ |
//CDlgParent.cpp——OnInitDialog() 8 M3 v+ s5 E# C+ ~
m_InnerDlg.Create(IDD_INNER, this);
8 G" ~; z. r3 O9 t' P7 E. |m_InnerDlg.MoveWindow(rect); & E! B4 {8 m- O% ~
m_InnerDlg.ShowWindow( SW_SHOW ); ! u3 ~, W% a; Q9 W6 N2 \. E
$ V' g" |0 G& D6 j {
方式二:
: }0 f8 E1 N! g$ Y+ _- t//CDlgParent.h 5 C' x+ v9 ^% O, i, A$ h) E# B
CDialog *m_pInnerDlg; 6 }, E* p6 ?- e0 k( p5 H9 y8 e# w
( P$ _4 U5 M* C9 A, O3 K' O, Z8 a
//CDlgParent.cpp——OnInitDialog() . S* M* c& |! ]0 t/ j+ v: @2 |% S
m_pInnerDlg = new CDialog(); s- @5 p; g2 W. i4 ^# n, S7 A
m_pInnerDlg->Create(IDD_INNER, this);
0 }2 d2 J% }/ D* Nm_pInnerDlg->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height());
. a* d. {" J0 i. [# E% `m_pInnerDlg->ShowWindow( SW_SHOW ); / R6 e7 E4 J) [ d; H, `: }
0 E5 h+ Z p3 f$ S7 S) {
8 z. v7 u: l& {+ r5 _; U4 F
% U1 D- d9 [* ~' {6 P& e) H
|
|