|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
* H6 T: `# R% f6 l0 D8 w# o一、对话框中显示对话框的方法:
% N5 `2 ?3 t( }7 ]0 Z1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。 0 u9 n( } L% W( \ g
设置这个对话框的属性:
8 W; F+ _5 D- c1)、“Style”选择“Child”;中文版“样式”选择“下层”。 % N5 W- S) [0 g/ d; t# ^) @' t/ K7 `
2)、“Border”为“None”;中文版“边框”选择“无”。 . j# {& z8 J" N0 B5 ?
% r1 ?, Y4 u/ V; a0 Q4 e4 u/ `2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。 ( {) l' @$ v: X: a6 ~) G/ S( Q
, K/ j% _5 U, Y* R" B5 w
3、得到Pic控件客户区坐标
! X4 _5 V; g: n8 M. @( _: Z//CDlgParent.cpp ——OnInitDialog() # D& x7 v, E7 r5 O8 B" k3 ]6 q# a
CRect rect;
$ V7 o8 x: |$ J1 }$ YGetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect); - y+ W7 U6 P8 a R& _
ScreenToClient(&rect); //千万注意别用成ClientToScreen(&rect); " k$ L" s2 u x+ a _
) ?. r, ?4 }- ?$ L3 \* C' Z, L1 ^
4、创建并显示对话框
' A' z+ Y3 }, n$ T0 ^方式一:
9 _. L7 A/ ]$ J+ d* Y; E& Y: U; ^//CDlgParent.h
1 M; P! q6 D& y" K' W5 FCDialog m_InnerDlg; * _. l1 J% @7 N% ]5 r
//CDlgParent.cpp——OnInitDialog()
# X" V, h" d( I- c% }6 um_InnerDlg.Create(IDD_INNER, this);
: Y4 `+ ` G; S) m. Z' }m_InnerDlg.MoveWindow(rect); 2 \5 y3 X" `+ Z3 a: q6 G
m_InnerDlg.ShowWindow( SW_SHOW ); * _! ^; N. ]$ e6 ], h( C
1 E1 q+ a7 I7 ^, V+ `方式二:
4 U: G/ s( C% i# O6 X5 C. L//CDlgParent.h
; N8 N5 Z; T: X3 NCDialog *m_pInnerDlg; 2 ~# d2 j/ [5 F) @4 E
$ ^. e) i: i4 G2 Z
//CDlgParent.cpp——OnInitDialog() - k6 H) {) N- Y. a6 ~
m_pInnerDlg = new CDialog();
( L& c. y" Y( ?3 ^7 ^( Z% Zm_pInnerDlg->Create(IDD_INNER, this); 8 O& f. G ?' R+ \( _
m_pInnerDlg->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height()); " s% U: I q) v# X7 \* [2 K+ n
m_pInnerDlg->ShowWindow( SW_SHOW );
# v( {% R% p3 y# C
3 r% `" [1 s( `. E" \+ u
2 `7 w- B. w; a& s. o/ r
8 c; C3 {' Z8 i/ U/ b |
|