MFC程序设计——标尺的例子
生活随笔
收集整理的這篇文章主要介紹了
MFC程序设计——标尺的例子
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們首先看一個例子:
頭文件:
//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就能完成文本格式化,而不調用其它的外部函數。
總結
以上是生活随笔為你收集整理的MFC程序设计——标尺的例子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【路径规划】局部路径规划算法——人工势场
- 下一篇: matlab条件and,matlaban