MFC程序设计基础

上传人:ths****59 文档编号:45104845 上传时间:2018-06-15 格式:DOC 页数:10 大小:389KB
返回 下载 相关 举报
MFC程序设计基础_第1页
第1页 / 共10页
MFC程序设计基础_第2页
第2页 / 共10页
MFC程序设计基础_第3页
第3页 / 共10页
MFC程序设计基础_第4页
第4页 / 共10页
MFC程序设计基础_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《MFC程序设计基础》由会员分享,可在线阅读,更多相关《MFC程序设计基础(10页珍藏版)》请在金锄头文库上搜索。

1、MFC 程序设计基础1. MFC 是采用面向对象程序设计技术对 Windows API 函数 特点: (1)文档视图类 (2)窗口类,对话框类,DC 类,字符串类(CString) (3)消息映射 (4)工具栏,状态栏,切分视图,滚动视图 (5)数据库类,通讯类 2. MFC 的程序入口 被隐藏在应用程序框架内部(Appmodul.cpp)3. 一个 MFC 项目的创建(以 Visual Studio 2010 为例)4. 基于 MFC 的形状控制器 (1)标题与初始窗口大小设置)标题与初始窗口大小设置 在CProj2App:InitInstance()函数中更改窗口标题: m_pMainWn

2、d-SetWindowTextW(m_pMainWnd-SetWindowTextW(_T_T( (“Shape“Shape Control“Control“););在 CMainFrame 类中修改窗口大小: BOOL CMainFrame:PreCreateWindow(CREATESTRUCT600; cs.cycs.cy = = 480;480; (2)绘制形状)绘制形状 在视图类 OnDraw 函数中绘制图形 void CProj2View:OnDraw(CDC* pDC) CProj2Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if

3、 (!pDoc) return; pDC-SelectObject(pDC-SelectObject(newnew CBrush(RGB(0,CBrush(RGB(0, 128,128, 255);255); pDC-Ellipse(100,pDC-Ellipse(100, 100,100, 300,300, 250);250); 在视图类中增加成员变量: int m_x; int m_y; int m_len; int m_wid; enum ELLIPSE, RECTANGLEm_shape; 在视图类构造函数中初始化: CProj2View:CProj2View() m_x = 200;

4、 m_y = 175; m_len = 200; m_wid = 150; m_shape = ELLIPSE; 重写 OnDraw 函数中的形状绘制代码: void CProj2View:OnDraw(CDC* pDC) pDC-SelectObject(new CBrush(RGB(0, 125, 255);if(m_shape = ELLIPSE) pDC-Ellipse(m_x-m_len/2, m_y-m_wid/2, m_x+m_len/2, m_y+m_wid/2); else pDC-Rectangle(m_x-m_len/2, m_y-m_wid/2, m_x+m_len/2

5、, m_y+m_wid/2); (3)显示文字)显示文字 在 OnDraw 函数中添加代码: CString strInfo; strInfo.Format(_T(“x=%d, y=%d, len=%d, wid=%d“), m_x, m_y, m_len, m_wid); pDC-SetBkMode(TRANSPARENT); pDC-TextOut(m_x-m_len/2, m_y, strInfo); (4)鼠标交互控制形状位置)鼠标交互控制形状位置 右键单击视图类,在属性选项中激活消息映射列表,选择 WM_LBUTTIONDOWN 消息,并添加函数到视图类。MFC 将自动生成如下代码:

6、 void CProj2View:OnLButtonDown(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultCView:OnLButtonDown(nFlags, point); 添加如下代码至 OnLButtonDown 函数: m_x = point.x; m_y = point.y; Invalidate(TRUE); (5)添加菜单项)添加菜单项 在资源视图中选择 Menu 下的 IDR_MAINFRAME。添加新的菜单项 Shape 及子项 Ellips

7、e,Rectangle 和 Animate,并设置对应 ID 为 ID_SHAPE_ELLIPSE,ID_SHAPE_RECTANGLE 和 ID_SHAPE_ANIMATE。添加消息映射至视图类:系统将自动生成下列代码: void CProj2View:OnShapeEllipse() / TODO: Add your command handler code here void CProj2View:OnShapeRectangle() / TODO: Add your command handler code here void CProj2View:OnShapeAnimate() /

8、 TODO: Add your command handler code here 在 OnShapeEllipse 函数中添加代码: m_shape = ELLIPSE; Invalidate(TRUE); 在 OnShapeRectangle 函数中添加代码: m_shape = Rectangle; Invalidate(TRUE); (6)动画设置)动画设置 设置定时器 bool m_bAnimationOn; m_bAnimationOn = false; 在 OnShapeAnimate 中添加代码: m_bAnimationOn = !m_bAnimationOn;if(m_bA

9、nimationOn) SetTimer(1,500,NULL); else KillTimer(1); 映射 WM_TIMER 消息,生成下列函数: void CProj2View:OnTimer(UINT_PTR nIDEvent) / TODO: Add your message handler code here and/or call defaultCView:OnTimer(nIDEvent); 在函数中修改形状位置: m_x = rand()%200+100; m_y = rand()%200+75; Invalidate(TRUE); (7)形状参数设置对话框)形状参数设置对话

10、框 在资源中选择 Dialog 后选择 Insert Dialog。通过 Toolbox 添加静态文本和编辑框控件,其中编辑框控件对应 ID 分别为: ID_EDIT_X, ID_EDIT_Y, ID_EDIT_LEN, ID_EDIT_WID。双击对话框自动生成对话框类 CSetShapeDlg。在对话框中关联编辑控件对应公有数据成员: int m_edtX; int m_edtY; int m_edtLen; int m_edtWid; 映射按钮 ok 对应函数并添加代码: void CSetShapeDlg:OnBnClickedOk() / TODO: Add your control

11、 notification handler code here UpdateData(TRUE); CDialogEx:OnOK(); 在菜单栏 Shape 中加入菜单子项 Set Shape 并添加事件处理函数: void CProj2View:OnShapeSetting() / TODO: Add your command handler code here 在视图类头文件中包含: #include “SetShapeDlg.h“ 并添加代码如下: CSetShapeDlg dlg;dlg.m_edtX = m_x; dlg.m_edtY = m_y; dlg.m_edtLen = m_len; dlg.m_edtWid = m_wid; if(IDOK=dlg.DoModal() m_x = dlg.m_edtX; m_y = dlg.m_edtY; m_len = dlg.m_edtLen; m_wid = dlg.m_edtWid; Invalidate(TRUE); 参考文献 1MSDN. 2 How do I. http:/

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号