码迷,mamicode.com
首页 > 编程语言 > 详细

MFC: 孙鑫教程4笔记

时间:2014-10-30 18:59:48      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   os   ar   sp   文件   

这节课主要讲了消息映射和绘画的一些函数,结构体,消息映射使得我们不用去管WindowProc函数的调用,只要在类里面添加消息就可以对操作进行一定的反应了。让MFC变得简单。

绘画的这些函数比较多,到时候可以refer这堂视频

下面是DrawView.cpp里的一些消息映射函数,加成员变量的时候需要在CDrawView的声明中(.h文件)里手动添加变量(视频里可以直接在类视图里添加),然后再构造函数里进行赋值。

bubuko.com,布布扣
 1 void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)
 2 {
 3     // TODO: 在此添加消息处理程序代码和/或调用默认值
 4     //MessageBox("view clicked");
 5     m_ptOrigin = m_ptOld = point;
 6     //m_ptOrigin = point;
 7     m_bDraw = TRUE;
 8     CView::OnLButtonDown(nFlags, point);
 9 }
10 
11 void CDrawView::OnLButtonUp(UINT nFlags, CPoint point)
12 {
13     // TODO: 在此添加消息处理程序代码和/或调用默认值
14     /*HDC hdc;
15     hdc = ::GetDC(m_hWnd);
16     MoveToEx(hdc, m_ptOrigin.x, m_ptOrigin.y, NULL);
17     LineTo(hdc, point.x, point.y);
18     ::ReleaseDC(m_hWnd, hdc);*/
19     /*CDC *pDC = GetDC();
20     pDC->MoveTo(m_ptOrigin);
21     pDC->LineTo(point);
22     ReleaseDC(pDC);*/
23     //CClientDC dc(this);
24     /*CClientDC dc(GetParent());
25     dc.MoveTo(m_ptOrigin);
26     dc.LineTo(point);*/
27 
28     /*CWindowDC dc(this);
29     CWindowDC dc(GetParent());
30     CWindowDC dc(GetDesktopWindow());
31     dc.MoveTo(m_ptOrigin);
32     dc.LineTo(point);*/
33 
34     /*CPen pen(PS_DASH, 1, RGB(0, 255, 0));
35     CClientDC dc(this);
36     CPen *pOldPen = dc.SelectObject(&pen);
37     dc.MoveTo(m_ptOrigin);
38     dc.LineTo(point);
39     dc.SelectObject(pOldPen);*/
40 
41     /*CBrush brush(RGB(255, 0, 0));
42     CClientDC dc(this);
43     dc.FillRect(CRect(m_ptOrigin, point), &brush);*/
44 
45     /*CBitmap bitmap;
46     bitmap.LoadBitmapA(IDB_BITMAP1);
47     CBrush brush(&bitmap);*/
48 
49     /*CClientDC dc(this);
50     //dc.FillRect(CRect(m_ptOrigin, point), &brush);
51     CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
52     CBrush *pOldBrush = dc.SelectObject(pBrush);
53     dc.Rectangle(CRect(m_ptOrigin, point));
54     dc.SelectObject(pOldBrush);*/
55 
56     m_bDraw = FALSE;
57 
58     CView::OnLButtonUp(nFlags, point);
59 }
60 
61 void CDrawView::OnMouseMove(UINT nFlags, CPoint point)
62 {
63     // TODO: 在此添加消息处理程序代码和/或调用默认值
64 
65     CClientDC dc(this);
66     CPen pen(PS_SOLID, 1, RGB(255, 0, 0));
67     CPen *pOldPen = dc.SelectObject(&pen);
68     if (m_bDraw == TRUE)
69     {
70         //dc.SetROP2(R2_MERGENOTPEN);
71         dc.SetROP2(R2_BLACK);
72         dc.MoveTo(m_ptOrigin);
73         //dc.LineTo(point);
74         dc.LineTo(m_ptOld);
75         //dc.MoveTo(m_ptOrigin);
76         dc.MoveTo(m_ptOld);
77         dc.LineTo(point);
78         //m_ptOrigin = point;
79         m_ptOld = point;
80     }
81     dc.SelectObject(pOldPen);
82     CView::OnMouseMove(nFlags, point);
83 }
View Code

 

MFC: 孙鑫教程4笔记

标签:des   style   blog   http   color   os   ar   sp   文件   

原文地址:http://www.cnblogs.com/yingzhongwen/p/4063312.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!