[游戏学习23] MFC 画尺子

 

>_<:这是个简单的MFC程序,有利于了解MFC的框架结构

>_<:Ruler.h

 1 #include<afxwin.h>
 2 class CMyApp:public CWinApp
 3 {
 4 public:
 5     virtual BOOL InitInstance();
 6 };
 7 class CMainWindow:public CFrameWnd
 8 {
 9 public:
10     CMainWindow();
11 protected:
12     afx_msg void OnPaint();
13     DECLARE_MESSAGE_MAP();
14 };

>_<:Ruler.cpp

 1 #include<afxwin.h>
 2 #include"Ruler.h"
 3 CMyApp myApp;
 4 //
 5 //CMyApp member function
 6 BOOL CMyApp::InitInstance()
 7 {
 8     m_pMainWnd=new CMainWindow;
 9     m_pMainWnd->ShowWindow(m_nCmdShow);
10     m_pMainWnd->UpdateWindow();
11     return TRUE;
12 }
13 /
14 //CMainWindow message map and member function
15 BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd)
16     ON_WM_PAINT()
17 END_MESSAGE_MAP()
18 
19 CMainWindow::CMainWindow()
20 {
21     Create(NULL,_T("Ruler"),WS_OVERLAPPEDWINDOW|WS_HSCROLL|WS_VSCROLL);
22 }
23 
24 void CMainWindow::OnPaint()
25 {
26     CPaintDC dc(this);
27 
28     //屏幕初始化
29     dc.SetMapMode(MM_LOENGLISH);//0.01in  ;1英寸映射
30     dc.SetTextAlign(TA_CENTER|TA_BOTTOM);
31     dc.SetBkMode(TRANSPARENT);
32 
33     //画尺子主题
34     CBrush brush(RGB(255,255,0));
35     CBrush* pOldBrush=dc.SelectObject(&brush);
36     dc.Rectangle(100,-100,1300,-200);
37     dc.SelectObject(pOldBrush);
38 
39     //画刻度
40     for(int i=125;i<1300;i+=25){
41         dc.MoveTo(i,-192);
42         dc.LineTo(i,-200);
43     }
44     for(int i=150;i<1300;i+=50){
45         dc.MoveTo(i,-184);
46         dc.LineTo(i,-200);
47     }
48     for(int i=200;i<1300;i+=100){
49         dc.MoveTo(i,-175);
50         dc.LineTo(i,-200);
51 
52         CString string;
53         string.Format(_T("%d"),(i/100)-1);
54         dc.TextOutA(i,-175,string);
55     }
56 
57     //商标
58     
59     //CRect rect(125,-125,175,-150);
60     //CString string=_T("晨光");
61     //dc.DrawText(string,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
62     dc.SetTextColor(RGB(192,192,192));
63     dc.TextOutA(125,-125,"晨光");
64 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值