|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
}1 Y4 Z1 ]; d一、对话框中显示对话框的方法:
# J& l2 e. b% O) c/ m$ @* r1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。
6 d( Z* X9 O% E" ~设置这个对话框的属性: 8 h0 W. r8 G* s: A0 Y
1)、“Style”选择“Child”;中文版“样式”选择“下层”。
0 q; x. b" y: w* o# i& ^2)、“Border”为“None”;中文版“边框”选择“无”。
5 B4 I, W' f( ?. Q4 V, s: _0 @ [4 g2 S
2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。
5 D7 ^, ~0 l t+ J; @( I; [( [4 J1 G/ r
3、得到Pic控件客户区坐标
$ g; d( i! K& H: W% r//CDlgParent.cpp ——OnInitDialog()
: l N: T* W6 a( b, J# JCRect rect;
! E+ }# i0 ?$ A. zGetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect); , T# Y9 n, ?1 y' P" f I& N" f
ScreenToClient(&rect); //千万注意别用成ClientToScreen(&rect); , T- `- C$ s/ g% ^+ g9 r
/ a4 h3 E' \5 F: ~4、创建并显示对话框
# o7 j' j# @: M方式一: 9 q4 ~3 @" |4 V8 I1 Z: K" N% [
//CDlgParent.h
% q' N9 ~8 \& Y1 | X D9 m: ECDialog m_InnerDlg; # X& p' V. T& b, e' L: S/ B. V
//CDlgParent.cpp——OnInitDialog() $ ~5 @' t& ~& r& H5 d# R8 m1 h' S( s
m_InnerDlg.Create(IDD_INNER, this);
2 d: p! _$ D& K/ c; J5 c+ {m_InnerDlg.MoveWindow(rect); : W+ ~- e9 [& F
m_InnerDlg.ShowWindow( SW_SHOW );
4 [* A0 ~: B" _$ ]
, s+ W: w' L) P0 |3 W/ l方式二: * w0 c7 w+ I% j
//CDlgParent.h " ~! o. A2 ]! Z& m; n
CDialog *m_pInnerDlg; # l* J5 l/ @9 i# L: K7 _2 O4 k
, `, b) E" H# H1 T//CDlgParent.cpp——OnInitDialog() 8 w$ _* L2 j+ v' R4 o1 e% S
m_pInnerDlg = new CDialog(); 3 f7 G C5 f$ u( h. o5 e2 t
m_pInnerDlg->Create(IDD_INNER, this); 4 D) X z, a n$ w7 F+ {; D
m_pInnerDlg->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height());
8 E7 d! K' B5 e( z+ Q+ dm_pInnerDlg->ShowWindow( SW_SHOW ); 7 b/ _ s0 _2 p' u
/ k$ m& T2 M# b9 G9 b
2 g S* W- n: B! N$ h$ R, H
: \& Q/ H, e4 i- e$ p |
|