|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
5 v& U' t$ u) D8 o; O
一、对话框中显示对话框的方法:
- F; U k; V8 }1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。
, g/ H% S) V, a设置这个对话框的属性: 9 d! S. p( m7 ?' O- h+ U9 a, [
1)、“Style”选择“Child”;中文版“样式”选择“下层”。 # }# Q- @* O0 o
2)、“Border”为“None”;中文版“边框”选择“无”。 3 O9 K* a6 s0 M" U
% k$ ^ H! y/ ]1 e0 c
2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。
o$ d \- G( M% s3 z
) ^+ p- y4 A! Y1 \ a( d3、得到Pic控件客户区坐标
3 ?& h5 |+ A" {8 S* A0 @/ {% |. O//CDlgParent.cpp ——OnInitDialog() 5 `$ V' C& F$ v9 ?, |
CRect rect; " z, H8 V/ Q$ u5 {% e
GetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect);
4 w. v9 g+ L( y+ X& \/ x! mScreenToClient(&rect); //千万注意别用成ClientToScreen(&rect); ( }$ U/ ^; n9 G5 M1 _
1 Z" w/ D. z! i& w c, @
4、创建并显示对话框
l; M# g! O/ ~; {, g" x7 [方式一:
* X0 P9 M+ }- y1 |' Q8 r; e* R//CDlgParent.h
2 b, U5 `3 d8 W8 h2 _CDialog m_InnerDlg;
9 W# t9 E$ K& x* f' p& ^//CDlgParent.cpp——OnInitDialog()
- i Z8 N0 P1 w" Km_InnerDlg.Create(IDD_INNER, this); ! f( X- H+ f# X; o0 D
m_InnerDlg.MoveWindow(rect);
& A) m& e, v! u+ k z- u) Sm_InnerDlg.ShowWindow( SW_SHOW );
. j8 N. d* n. y7 x8 M4 c" \8 V% g
方式二: 8 J0 J9 n$ t; o
//CDlgParent.h
; o# |8 n" K. v4 Z/ r) FCDialog *m_pInnerDlg; 5 M/ i1 a Z5 Y; l4 v8 r: p
4 R# b" \" A- e- g' r7 A% G" K9 O//CDlgParent.cpp——OnInitDialog()
) T) A; S7 y4 q' T# X3 H0 @m_pInnerDlg = new CDialog();
) {3 W2 l% \: S1 Im_pInnerDlg->Create(IDD_INNER, this);
! I m" D+ K+ Lm_pInnerDlg->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height());
& z, V9 K) r3 \9 t2 t9 [' @m_pInnerDlg->ShowWindow( SW_SHOW ); & B9 ]$ @2 x. I# r
# J d: w g% D5 C1 [
" r4 l0 ~$ V+ ], a. l3 m" u' Q9 L0 E0 U* N! E# a: O9 w
|
|