|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
* {+ Y3 K+ l U6 H; B
一、对话框中显示对话框的方法: - X4 ?$ @. b; F% p
1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。
) \1 a9 e& G- ~% F设置这个对话框的属性:
6 {. O! V0 [9 A! X S5 v1)、“Style”选择“Child”;中文版“样式”选择“下层”。 : s! ?+ P1 Y4 S& i9 I, m* F
2)、“Border”为“None”;中文版“边框”选择“无”。
; a, J' \& R) ?9 P
/ l2 w9 i# b/ E9 A+ l: m$ L2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。
( ~' ~- ~% N5 ?+ q. E W( ]9 y& A, o! B8 l
3、得到Pic控件客户区坐标 ! Y7 i Y: t, x& R
//CDlgParent.cpp ——OnInitDialog()
8 t( ?% Y& {8 ^- ], ACRect rect;
9 N; r- T' E9 a% xGetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect); 9 h" m% i1 r" K
ScreenToClient(&rect); //千万注意别用成ClientToScreen(&rect);
+ n; m+ G; z; z, H% ?
' J. A l( J1 D6 j4、创建并显示对话框
' D2 t& [) v; {方式一: " p! E# O. L4 P8 N! t2 J) z6 R
//CDlgParent.h ! T" c8 m E+ @1 `6 G) I, U. X
CDialog m_InnerDlg; # C& G3 j( R; I% B8 E. \0 ]
//CDlgParent.cpp——OnInitDialog() & K7 @' ~% i& c) T S2 W
m_InnerDlg.Create(IDD_INNER, this);
! E0 O, G$ s1 h# e; T/ c; m ]0 em_InnerDlg.MoveWindow(rect); $ N; n Z: ^; F- Q1 l
m_InnerDlg.ShowWindow( SW_SHOW ); 9 V7 N0 D4 A8 f# e
/ |5 m+ Z/ D0 h n/ R4 _方式二:
% H+ d$ {4 |+ u6 h2 v0 s9 t//CDlgParent.h
8 l8 J) l) E( v" p, B- q0 E! nCDialog *m_pInnerDlg;
5 |: K+ ^% `9 d% W z, {7 m) O7 b' l$ A3 c, X; ]7 h
//CDlgParent.cpp——OnInitDialog()
5 U: x9 U1 j ~. y! m, _& \2 Cm_pInnerDlg = new CDialog();
* E7 O. T+ R) lm_pInnerDlg->Create(IDD_INNER, this);
8 C# s) \4 J" N5 f3 w) Km_pInnerDlg->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height()); & c0 L n7 l [% R8 I
m_pInnerDlg->ShowWindow( SW_SHOW );
' C" g: ]) V% {% u7 H- ]
$ N( B- Q% h9 \5 d: ?
( L. M) K4 _! B' @8 X9 R4 R
" j0 t0 R3 Z. k+ L& }: W |
|