|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 ~2 ?* Z; v" e6 U6 z
一、对话框中显示对话框的方法:
5 B( b6 h) I2 R" A1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。
8 w& Z4 j% d2 A0 @9 k设置这个对话框的属性:
9 x* b& v! R6 W3 M! J( a4 }1)、“Style”选择“Child”;中文版“样式”选择“下层”。
7 _9 E! J" O+ I1 `2)、“Border”为“None”;中文版“边框”选择“无”。 4 z3 E+ O% e# M
6 S c% D1 m2 e/ x3 Q* I. C2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。 + F. z6 b; R% n# ?
6 f( u. h+ F, r3、得到Pic控件客户区坐标
4 s: U3 k; u6 E! D8 ~1 e//CDlgParent.cpp ——OnInitDialog() 7 |! \( Q% R% l5 c5 G
CRect rect;
& q" I5 |9 U0 A7 {0 i" W$ u' g4 N( TGetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect); * e, @/ z; Q( a& M7 a! L
ScreenToClient(&rect); //千万注意别用成ClientToScreen(&rect);
; Q- W {4 T& ?8 F1 S0 G" Q
) p+ S2 ]- ~" W- ?7 y4、创建并显示对话框
% s' v/ t& L; d1 j3 D4 C v方式一: 2 U9 t4 \: W6 U: Y) W& b$ F
//CDlgParent.h
- S# X E4 A9 J- t' j; c4 X& BCDialog m_InnerDlg; 1 I9 X9 S( A/ M6 g- O7 T" ?
//CDlgParent.cpp——OnInitDialog() 7 u& S. o0 \6 L5 B/ ]# B8 f
m_InnerDlg.Create(IDD_INNER, this); ( w( s9 H- J6 v; f5 v2 a+ P5 Z
m_InnerDlg.MoveWindow(rect); , o, x! e# \/ M* f5 g1 e* E# Q
m_InnerDlg.ShowWindow( SW_SHOW ); 8 s! p* @ L [3 j
( `5 E$ W3 J, H* W方式二: ( Z; @- t+ X% r9 l
//CDlgParent.h
* ?5 R% ?% q( \/ u5 ?. K: BCDialog *m_pInnerDlg; 3 E5 Z! E: q$ t- [1 }
' p% Z' z: T/ V
//CDlgParent.cpp——OnInitDialog() - o) k, l+ E, S& X* k4 p* p
m_pInnerDlg = new CDialog();
) \4 d+ n3 X7 R, D4 Xm_pInnerDlg->Create(IDD_INNER, this); : C$ Q3 R) g4 f- r4 i. K
m_pInnerDlg->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height());
1 _+ s I- m) R$ A" Mm_pInnerDlg->ShowWindow( SW_SHOW );
; |& x1 m* P0 p: r4 t# S& T8 R! j, G5 c) @: ]
! s7 _) e. @7 a
6 W' Z/ I, A, I8 v2 W# G |
|