题目要求:
运行平台:VC++6.0
创建一个基于对话框的程序,有三个按钮:Exit,Draw Graphics和Stop.其它为空.
当单击Draw Graphics时,应用程序不断地以不同的半径去绘制圆:首先圆半径不断增大,到达最大后双连续减少;在圆半径减小到某一程度后,又从头执行以上过程.
当单击Stop时,圆半径停止变化;
单击Exit按钮将退出应用程序.
=============================
首先我新建一个叫MyMessage的exe应用程序,选择基于对话框,其它默认.进入设计:
1) 按题目要求设计窗口:去掉两个不合要求的按钮--OK和Cancel.还有一个显示为TODO:~~的静态文本.新添三个按钮,其ID和Caption分别为:
IDC_EXIT_BUTTON Exit
IDC_DRAW_BUTTON Draw Graphics
IDC_STOP_BUTTON Stop
2)然后为Exit添加单击消息的代码:
viod CMymessageDlg::OnExitButton()
{
OnOK();
}
3)安装Timer。在CMymessageDlg::OnInitDialog()函数中"//TODO..."后面添加如下代码
int install;
install = SetTimer(1,250,NULL);
if(install == 0) MessageBox("Can not install timer!");
m_radius = 50;
m_direction = 1;
m_bclick = false;
return TRUE;
}
其中m_radius m_direction m_bclick在头文件MymessageDlg.h中定义如下:
int m_radius;
int m_direction;
BOOL m_bclick;
4)程序结束后清除Timer,在CMymassageDlg::OnDestroy()函数的TODO后添加如下代码:
KillTimer(1);
5)为DrawGraphics和Stop添加代码:
void CMymessageDlg::OnDrawButton()
{
m_bclick = true;
}
Void CMymessageDlg::OnStopButton()
{
m_bclick = false;
}
6)随着时间的变化要求半径变化,故为OnTimer()添加如下函数
void CMymessageDlg::OnTimer(UINT nlDEvent)
{
if (m_bclick)
{
m_radius += m_direction;
if (m_radius>=100) m_direction = -1;
if (m_radius<=10) m_direction = 1;
Invalidate();
}
CDialog::OnTimer(nIDEvent);
}
接着就是要写画圆的代码了,但我不知道应该怎么写,在哪里写,请高手指点一下。谢谢。