|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
8 i- u$ g9 B8 y
一、对话框中显示对话框的方法: $ z7 O4 X; u3 l" N# C$ z( g
1、首先创建要在对话框里显示的那个对话框,命名为:IDD_INNER。 7 f2 | U) W/ g+ |3 T6 V& L( C
设置这个对话框的属性:
, S& b+ T/ t: ]0 i6 {9 }1)、“Style”选择“Child”;中文版“样式”选择“下层”。 . n( y( M% y' ]" H
2)、“Border”为“None”;中文版“边框”选择“无”。 * v3 E( C& [" V5 E# a+ t6 D
3 z2 x" t6 [. d( J: C h
2、为了显示时能够准确定位,我们可以在右边要显示对话框的地方放入一个Pic控件,命名为:IDC_STATIC_RECT,Visible属性去掉。 # g0 F! ^5 `+ j. f) B
* t4 I. Y# ?# K, `4 A3、得到Pic控件客户区坐标
# H: L4 f4 g0 H3 O {4 G" A//CDlgParent.cpp ——OnInitDialog() 9 {$ B4 M5 e, a8 W" W; y
CRect rect; 5 `0 y+ ?4 S( K L6 a7 B. Z
GetDlgItem(IDC_STATIC_RECT)-> GetWindowRect(&rect);
2 m: C+ K5 [ p, tScreenToClient(&rect); //千万注意别用成ClientToScreen(&rect); " r+ T1 p; ]/ d# ]3 ^$ i1 w1 q, p
" X# g$ d/ i. X4 X* H; G5 I. \4、创建并显示对话框
' @4 T" l+ T/ l% a方式一:
3 E$ j) \% f/ x//CDlgParent.h
% H. w3 ~. c" z9 z |CDialog m_InnerDlg; 9 Q; ]3 t" b( I! C- N5 W
//CDlgParent.cpp——OnInitDialog() 3 _2 Z" h% O+ i$ T% O1 o
m_InnerDlg.Create(IDD_INNER, this); / [- A) [" ~$ l! g4 |/ ? ~
m_InnerDlg.MoveWindow(rect);
" \7 W. \7 e: n* _2 w( dm_InnerDlg.ShowWindow( SW_SHOW );
X, K; q$ B6 n8 B9 s% _0 j8 c& c; L: d1 S
方式二:
7 N) X0 K1 _( A# J6 W//CDlgParent.h + }& u: C0 I2 D0 U. Z
CDialog *m_pInnerDlg; 1 V4 v( [, p X
: L4 b% r# R! T# n//CDlgParent.cpp——OnInitDialog()
9 r% p) A+ f R- _. L# Km_pInnerDlg = new CDialog(); 0 a( D- W+ R& ` o6 J5 D8 {( B# N1 n
m_pInnerDlg->Create(IDD_INNER, this); 4 x2 I( P/ |! [1 {2 H: Y" e; q
m_pInnerDlg->MoveWindow(rect.left, rect.top, rect.Width(), rect.Height());
$ {5 T" S. J) g; xm_pInnerDlg->ShowWindow( SW_SHOW );
& ^( [8 H& a% K3 A# P- J7 d+ R3 e) {) Q7 e" P8 D
2 ]0 Z% Q0 R8 M0 R
" L: }; Z8 N C& H |
|