- 1、本文档共138页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VisualCMFC编程实例
第10章 Visual C++编程实例;10.1 MFC编程流程 ;图 10-1;一个MFC程序运行的一般过程如下:
(1) 生成CwinApp的一个实例(调用CwinApp的构造函数),初始化全局对象;
(2) Win32入口程序函数WinMain调用函数AfxWinMain;
(3) AfxWinMain调用函数CwinApp的成员函数InitInstance;
(4) AfxWinMain调用函数CwinApp的成员函数Run;
(5) AfxWinMain函数返回到WinMain,WimMain结束,程序结束。
; 例10-1 吹泡泡程序。每当用户在窗口客户区中按下鼠标左键时即可产生一个泡泡(彩色圆形)。
设计思路:显示一个泡泡所需的数据包括其位置和大小,在MFC中可用其包含矩形表示。可设置一数组,每当用户按下鼠标左键时,就产生一个泡泡的数据并存入数组中。最后,由框架窗口类的OnPaint()函数显示所有的泡泡。
;#includeafxwin.h
#define MAX_BUBBLE 250
class CMyWnd:public CFrameWnd
{
CRect m_rectBubble[MAX_BUBBLE];
int m_nBubbleCount;
public:
CMyWnd() {m_nBubbleCount=0;}
; protected:
afx_msg void OnLButtonDown(UINT nFlags,CPoint point);
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
};
?//消息映射
BEGIN_MESSAGE_MAP(CMyWnd,CFrameWnd)
ON_WM_LBUTTONDOWN()
ON_WM_PAINT()
END_MESSAGE_MAP();//框架窗口类的成员函数
void CMyWnd::OnLButtonDown(UINT nFlags,CPoint point)
{
if(m_nBubbleCountMAX_BUBBLE)
{
int r=rand()%50+10;
CRect rect(point.x-r,point.y-r,point.x+r,point.y+r);
m_rectBubble[m_nBubbleCount]=rect;
m_nBubbleCount++;
InvalidateRect(rect,FALSE);
};}
void CMyWnd::OnPaint()
{
CPaintDC dc(this);
CBrush brushNew;
CPen penNew;
brushNew.CreateSolidBrush(RGB(rand()%255,rand()%255,rand()%255));
penNew.CreatePen(PS_SOLID,1,RGB(255,0,0));
dc.SelectObject(brushNew);
dc.SelectObject(penNew);;for(int i=0;im_nBubbleCount;i++)
dc.Ellipse(m_rectBubble[i]);
}
?//应用程序类
class CMyApp:public CWinApp
{
public:
BOOL InitInstance();
};
BOOL CMyApp::InitInstance();{
CMyWnd *pFrame=new CMyWnd;
pFrame-Create(0,_T(吹彩色泡泡));
pFrame-ShowWindow(m_nCmdShow);
this-m_pMainWnd=pFrame;
return TRUE;
}
CMyApp ThisApp; //全局应用程序对象
按【Ctrl+F5】运行程序,运行结果如图10-2所示。
; 说明:
该程序声明了两个类,一个是由应用程序类CwinApp派生出来的CmyApp类,一个是由框架窗口CframeWnd类派生出来的CmyWnd类。MFC的基本类名均以字母C打头,习惯上在为使用MFC编写的应用程序中的类起名
文档评论(0)