MFC程序设计——标尺的例子
来源:互联网 发布:网易房产数据 北京 编辑:程序博客网 时间:2024/06/07 18:02
我们首先看一个例子:
头文件:
//Ruler.h//CMyApp类代表应用程序本身,CMyApp::InitInstance通过构造CMainWindow对象创建一个主窗口;//而CMainWindow的构造函数通过Create创建了在屏幕上显示的窗口;class CMyApp : public CWinApp{public: virtual BOOL InitInstance ();};class CMainWindow : public CFrameWnd{public: CMainWindow ();protected: //CMainWindow::OnPaint()处理所有的画图任务 afx_msg void OnPaint (); DECLARE_MESSAGE_MAP ()};
源文件:
//Ruler.cpp#include <afxwin.h>#include "Ruler.h"CMyApp myApp;///////////////////////////////////////////////////////////// CMyApp member functionsBOOL CMyApp::InitInstance (){ m_pMainWnd = new CMainWindow; m_pMainWnd->ShowWindow (m_nCmdShow); m_pMainWnd->UpdateWindow (); return TRUE;}///////////////////////////////////////////////////////////// CMainWindow消息映射以及成员函数BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd) ON_WM_PAINT ()END_MESSAGE_MAP ()CMainWindow::CMainWindow (){ Create (NULL, _T ("Ruler"));}void CMainWindow::OnPaint (){ CPaintDC dc (this); //初始化设备描述表 //设置映射模式 dc.SetMapMode (MM_LOENGLISH); //设置设备描述表的属性 dc.SetTextAlign (TA_CENTER | TA_BOTTOM); //设置背景模式,透明 dc.SetBkMode (TRANSPARENT); // 画标尺的主体 //黄色的画刷被选为设备描述表 CBrush brush (RGB (255, 255, 0)); CBrush* pOldBrush = dc.SelectObject (&brush); dc.Rectangle (100, -100, 1300, -200); dc.SelectObject (pOldBrush); // // 画散列的刻度线 // for (int i=125; i<1300; i+=25) { dc.MoveTo (i, -192); dc.LineTo (i, -200); } for (int i=150; i<1300; i+=50) { dc.MoveTo (i, -184); dc.LineTo (i, -200); } for (int i=200; i<1300; i+=100) { dc.MoveTo (i, -175); dc.LineTo (i, -200); //CDC::TextOut画出数字标注 CString string; string.Format (_T ("%d"), (i / 100) - 1); dc.TextOut (i, -175, string); }}
注:C语言中的%d代表整型
标尺的应用程序没有采用把要传递给TextOut的字符串硬编码的方法,而是调用了CString::Format 生成标尺上的文本,CString是描述文本字符串的MFC类,对于CString对象而言,Format就能完成文本格式化,而不调用其它的外部函数。
阅读全文
0 0
- MFC程序设计——标尺的例子
- MFC 画标尺
- Qwt源码解读之标尺相关类——日期时间标尺绘制类QwtDateScaleDraw
- 版本号,软件工程的标尺
- flex标尺的实现
- Qwt源码解读之标尺相关类——QwtScaleMap
- Qwt源码解读之标尺相关类——QwtScaleDiv
- GEF显示简单的标尺
- word2010 标尺游标的微调
- 自定义带标尺的seekbar
- 策略模式——MFC例子
- awk程序设计的一个例子
- 基于MFC的Direct3D程序设计
- 基于MFC的Direct3D程序设计
- MFC框架下的程序设计
- MFC windows应用程序设计(一)——Windows 应用程序的基本概念
- MFC Windows应用程序设计(二)——应用程序的结构
- MFC 多线程的一个例子
- JVM之虚拟机内存监控与故障处理工具
- httpClient4发送gzip的post数据,servlet接收并解压
- opencv 学习之 转置翻转(90/180/270)
- Residual Networks
- 设计模式-责任链模式
- MFC程序设计——标尺的例子
- Java多线程同步中同步代码块、wait、notify与notifyAll的真正含义与工作原理
- python练习
- Could not initialize class net.sf.cglib.beans.BeanCopier
- MySQL能够承受上亿万条的数据量的架构
- jsp/servlet第四章第五节application范围实例
- Session一致性问题
- 创建访问次数
- 学生信息系统之优化(二)