|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
: i) s# L9 n0 q# G% E6 ~" y S
一、对话框中显示对话框的方法:
6 X- H5 Z$ c4 F/ Z, p1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。
7 y( h6 S x' J( Z设置这个对话框的属性:
$ V, ?( ]& l) `6 g# U* k1)、“Style”选择“Child”;中文版“样式”选择“下层”。 ' t1 f9 W! }' E- u+ m0 C
2)、“Border”为“None”;中文版“边框”选择“无”。
& k: |/ V B. x7 W H9 Y4 D. b8 i4 ^9 X$ J6 q" U: [+ q9 c9 T
2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。 ! d, K4 [" [! _& U. S' A( D
7 J1 q, W! {" y; G; V* z
3、得到Pic控件客户区坐标
8 ~6 T8 t* @2 n# k: _//CDlgParent.cpp ——OnInitDialog() 0 }% X: \5 P4 ]
CRect rect;
& F' n5 T9 ]& P7 b5 _6 rGetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect); ) L" F$ _- _5 [9 c, T! l7 M
ScreenToClient(&rect); //千万注意别用成ClientToScreen(&rect); * M# {/ Q q4 q3 S3 ?, ` P
) q) L: X' t, ^- y1 a4、创建并显示对话框
0 m: R+ h. X# l; A' }3 j5 U7 d* r方式一:
) U. H$ \: X3 B) w# c/ e8 _//CDlgParent.h " `8 t$ G9 S* ?5 h
CDialog m_InnerDlg; 2 M( t( B# x# X2 O7 G1 h
//CDlgParent.cpp——OnInitDialog() ( S& x. h; f, C& _! F$ m5 E7 Q
m_InnerDlg.Create(IDD_INNER, this);
5 z9 e4 p/ R9 B9 m2 Y- J$ m/ Ym_InnerDlg.MoveWindow(rect); + f8 A9 N9 l( z8 a0 S" r: N' u
m_InnerDlg.ShowWindow( SW_SHOW );
1 y3 U m" H" |7 z( G9 X( m' L0 \7 \/ u# l1 ~
方式二:
. X i6 C% n5 w. L4 Z3 h//CDlgParent.h * t9 X3 _2 B, Y7 y/ ]: M& y
CDialog *m_pInnerDlg; y, ?! f+ w" D, [5 ^
7 P6 h* g+ G& @; b" i8 J( P* h- B0 D//CDlgParent.cpp——OnInitDialog()
t6 D. G+ s; A$ _; N6 m! g6 z+ Om_pInnerDlg = new CDialog();
- B: G5 [. a! F+ l9 }7 a0 |m_pInnerDlg->Create(IDD_INNER, this);
8 o! x ]; \1 [) B' Im_pInnerDlg->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height()); & L4 g' O: j1 ^4 a; [
m_pInnerDlg->ShowWindow( SW_SHOW );
/ S" |" h" u9 \0 C4 N9 U- R3 p: P, f1 D7 V1 e
" d: n0 Y* k- X" o# I0 K& D5 ?$ Q) v( S" ^+ z! H& Z+ Y
|
|