清华大学附属幼儿园:VC基本操作求助

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 04:16:35
VC中如何在一个DIALOG中操作另一个DIALOG
例如:建立一个SDI,增加一个DIALOG,所属类取名为CDrawDlg,添加一个BUTTON,点击BUTTON后,在主窗口的客户区画一个圆.
要求两种方法实现:
1.主窗口菜单栏中已经有了DRAW()函数,通过单击BUTTON直接调用;
2.在BUTTON的单击事件中写画图代码
我尝试了很多操作,但都是编译能通过,执行时出错
Draw()函数在CMainFrame中,我在菜单栏中添加了一个画图菜单,点击它调用Draw(),所以我想通过BUTTON调用Draw()函数来实现,或者另写一函数.这两种实现方式望告之

如果想实现单击对话框的ok就画圆,很简单.只需为你在菜单中加的
"弹出对话框"一项写响应函数.
例如,你的菜单里加了一个"弹出对话框"选项, 它的响应函数为OnDialog1,那就在这个函数中加入以下代码:
void CMainFrame::OnDialog1()
{
// TODO: Add your command handler code here
CDrawDailog dlg;
if(dlg.DoModal()==IDOK){
CClientDC dc(this);
dc.Ellipse(200,200,400,400);
}
}
如果你要调用Draw:
void CMainFrame::OnDialog1On()
{
// TODO: Add your command handler code here
CDrawDailog dlg;
if(dlg.DoModal()==IDOK){
this->DRAW();
}
}
另外,如果你指的按钮是自己添加的,则:
void CDrawDailog::OnButton1()
{
// TODO: Add your control notification handler code here
CMainFrame *pMainWnd = (CMainFrame *)AfxGetMainWnd();
pMainWnd->DRAW();
}
我有点儿事儿先走了,如果还有问题就加我qq 73358221

你的问题可能是函数中的参数定义有问题啊,你用Ctrl+W看看有没有没定义的参数。定义好了应该就可以编译了。