|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
6 y$ O* w5 i1 u+ n一、对话框中显示对话框的方法:
- i0 C" K9 s; d. V3 b1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。 $ F; S6 c e) i$ r0 e1 h
设置这个对话框的属性: 6 i- k8 ^% E$ G6 q9 Y
1)、“Style”选择“Child”;中文版“样式”选择“下层”。 . Z) c1 M$ D: _# C2 q" O4 Z5 R
2)、“Border”为“None”;中文版“边框”选择“无”。 5 \5 I- j- i; C# \6 z, E) [* Y
, `! \7 M5 R9 P. A5 B2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。
4 j- a& k( x7 u4 q! X9 ]# m! e# y3 V! q9 D7 k. f& w
3、得到Pic控件客户区坐标
7 D7 ^8 E3 T4 s$ q- t' [" Y//CDlgParent.cpp ——OnInitDialog()
4 n+ R8 M) ^' r: I6 wCRect rect;
/ h( G* V- O) Q4 uGetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect);
# w4 Y# r8 h5 _$ R$ dScreenToClient(&rect); //千万注意别用成ClientToScreen(&rect);
1 G1 S! ?2 u( F# M. e7 \: `/ ~& L! P& I4 v" f- }+ a% n% E
4、创建并显示对话框
i7 p1 y3 ?4 V# c: I$ T& `方式一:
9 A) v5 G5 N8 o5 u+ t$ F//CDlgParent.h # J6 ]: a( @! R
CDialog m_InnerDlg;
; G6 ]0 ^, k( l/ P! Z//CDlgParent.cpp——OnInitDialog()
" d2 {4 D& p1 Wm_InnerDlg.Create(IDD_INNER, this);
! I7 h$ `" ]0 U/ G: d6 Zm_InnerDlg.MoveWindow(rect);
9 o9 t- ?: E5 U3 I# s+ Y2 `m_InnerDlg.ShowWindow( SW_SHOW ); $ F8 |) P5 t2 A0 m+ {" m
$ f4 L. r/ c: K) j) z( z# h方式二:
! a5 f, J5 x# R, \//CDlgParent.h 7 {+ |, J7 x* y1 d
CDialog *m_pInnerDlg; 5 d+ G0 L( r( ^8 [ S
7 M) r% ? \/ Q9 g0 l9 V i) e
//CDlgParent.cpp——OnInitDialog()
# h+ U4 V$ X$ _5 u$ Im_pInnerDlg = new CDialog(); # K% [1 v. M; x1 R
m_pInnerDlg->Create(IDD_INNER, this); ( B+ ?, \2 {7 a$ M! A T$ Z
m_pInnerDlg->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height());
+ ^$ M( H& @; j: {% r: Um_pInnerDlg->ShowWindow( SW_SHOW ); , W6 i4 `3 Z6 \
, T0 j6 I3 L, G @9 C
! x; _ J3 x( @8 c g! z+ \% S$ q
( X$ l: n' ` g1 Y! O( i5 E& u |
|