想实现:把对话框B(上面有个按钮)镶嵌到对话框A(空的)中,看起来就像是在对话框A上放了一个按钮,其实这个按钮是对话框B的
我的做法是:
建立一个基于对话框的工程--对话框A
然后在这工程又添加了一个对话框类--对话框B
并把对话框B属性中的Border设置为None,Style设置为Child
下面该怎么做才能实现我一开始说的效果呢?
我的做法是:
建立一个基于对话框的工程--对话框A
然后在这工程又添加了一个对话框类--对话框B
并把对话框B属性中的Border设置为None,Style设置为Child
下面该怎么做才能实现我一开始说的效果呢?
解决方案 »
- (在线等)mfc程序调试的问题
- 大牛们,请用最简单的话来描述
- CInternetSession sess生成dll动态库后运行出错,在工程中运行正常
- 如何取得 top 20以后的记录(SQL语句)
- VC6.0 + WTL7.1 在 2003 下如何支持中文
- 求上下滚动文本的算法!~~~~~~~~~~~~~~~~~~~~
- 如何保存网页和查看源代码?
- 求助!《windows核心编程》第一例!
- 求《Visual C++ 实践与提高——COM和COM+》的CD收到后再送高分!
- com服务器,服务器方com库,客户方com库,客户程序
- 请大家提供点关于WINDOW内核机制 进程 挂钩子的资料 谢了
- vc 中能使用java 嘛?
但我需要对话框B是真正的在对话框A里面,就是说,对话框A拖动的话,B也随着动
现在是A动了,B还在原来的位置上
如何实现,在B上的按钮就像是A上的一样!!!
{
ClassB ObjectB;//在A中声明B的对象
}BOOL ClassA::OninitDialog()
{
CDialog::OninitDialog();
m_Init = TRUE;//设定一个初始值标识已经初始化完成
return TRUE;
}
void CLASSA::OnSize()
{
if(!m_Init)
return;
CRect rcThis;
GetClientRect(&rcThis);
ObjectB.MoveWindow(rcThis);
}
CChildDlg* m_Dlg;
在对话框初始化的时候: C/C++ code
BOOL CChildDialogDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_Dlg=new CChildDlg(); m_Dlg->Create(IDD_FORMVIEW,this);
m_Dlg->ShowWindow(SW_SHOW); //这是必须的,只要是创建了对话框,无论它在哪里,都要使用ShowWindow
CRect rect;
m_Dlg->GetClientRect(&rect);
m_Dlg->MoveWindow(100,100,rect.right,rect.bottom);//将对话框移动到你需要的位置。
}主对话框重载父类的PostNcDestroy函数,在这个函数中删除成员指针:
void CChildDialogDlg::PostNcDestroy()
{
delete m_Dlg;
}
你做的工作没有做充分。 首先,你做的那几步是正确的。后续的工作是: ClassA: public CDialog
{
ClassB ObjectB;//在A中声明B的对象
}BOOL ClassA::OninitDialog()
{
CDialog::OninitDialog();
ObjectB.Creat(IDD_DIALOG_B, this)//这句漏了
m_Init = TRUE;//设定一个初始值标识已经初始化完成
return TRUE;
}
void CLASSA::OnSize()
{
if(!m_Init)
return;
CRect rcThis;
GetClientRect(&rcThis…
}
漏了一句