一、新建一個基於對話框的程序
二、刪除static 將確定改為顏色。
三、在dlg頭文件裡用class wizard添加以下消息映射
afx_msg void OnExitButton();
afx_msg void OnDestroy();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnDrawButton();
四、在頭文件聲明如下兩個變量
int m_Radius;
int m_direction;
五、各函數如下:
////////////////////////
//石油大學
//浮萍工作室(Float WorkStudio)王傳章(王哲)
//[email protected] http://sunapple.51.Net
///////////////////////
void CGraphDlg::OnExitButton()
{
OnOK();
}
void CGraphDlg::OnDestroy()
{
CDialog::OnDestroy();
KillTimer(1);
}
//////////////循環控制
void CGraphDlg::OnTimer(UINT nIDEvent)
{
//MessageBox("s");
m_Radius=m_Radius+m_direction;
if(m_Radius>=100)
{
m_direction=-1;
}
if(m_Radius<=10)
{
m_direction=1;
}
Invalidate();
CDialog::OnTimer(nIDEvent);
}
void CGraphDlg::OnDrawButton()
{
dlg.DoModal();
}
六、在函數初始化裡加入:
int iInstallresult;
iInstallresult=SetTimer(1, 50, NULL);
if(iInstallresult==0)
{
MessageBox("cannot install timer!");
}
colordlg dlg;
dlg.m_RedRadio=0;
m_Radius=50;
m_direction=1;
完成定時器的安裝。
七、在OnPaint()裡的else下內容改為:
CPaintDC dc(this);
CPen MyNewPen;
COLORREF mm_color=dlg.m_color;
MyNewPen.CreatePen(PS_SOLID,10,mm_color);//RGB(255,0,0)
CPen* pOriginalPen;
pOriginalPen=dc.SelectObject(&MyNewPen);
CRect MyRectangle(30,10,20+m_Radius*2,10+m_Radius*2);
dc.Ellipse(&MyRectangle);
dc.SelectObject(pOriginalPen);
CDialog::OnPaint();
八、別忘了 建立一個colordlg 來控制線條顏色 當然你還可以自己添加很多東西。
怎麼樣? 一個動圓是不是出來了?