一个对话框里的动圆

王朝vc·作者佚名  2006-01-17
宽屏版  字体: |||超大  

一个对话框里的动圆

作者:浮萍工作室 王哲

下载本文示例源代码

一、新建一个基于对话框的程序

二、删除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)王传章(王哲)

//arswan@sina.com 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

来控制线条颜色 当然你还可以自己添加很多东西。

怎么样? 一个动圆是不是出来了?

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有