绘制简单的图形几乎是所有的VC教程中的必须内容,这里面涉及到几个概念,设备(device context),画刷(Pen)等。CDC是所有设备的父类,其子类包括CClientDC(仅在客户区绘制), CPaintDC, CWindowDC(可以在客户区和窗口非客户区绘制)等。所有继承于CWnd类的子类均可以构造设备类。

#include <afxwin.h>class MFC_Tutorial_Window: public CFrameWnd
{CPoint m_startPoint;CPoint m_endPoint;
public:MFC_Tutorial_Window(){Create(NULL, "MFC Tutorial");}void OnLButtonDown(UINT nFlags, CPoint point);
/*  {CFrameWnd::OnLButtonDown(nFlags,point);m_startPoint = point;  }*/void OnLButtonUp(UINT nFlags, CPoint point);
/*  {CFrameWnd::OnLButtonUp(nFlags, point);m_endPoint = point;CClientDC dc(this);dc.MoveTo(m_startPoint);dc.LineTo(m_endPoint);}*/DECLARE_MESSAGE_MAP()
};BEGIN_MESSAGE_MAP( MFC_Tutorial_Window, CFrameWnd)
ON_WM_LBUTTONDOWN() //Macro to map the left button click to the handler
ON_WM_LBUTTONUP() //Macro to map the left button click to the handler
END_MESSAGE_MAP()void MFC_Tutorial_Window::OnLButtonDown(UINT nFlags, CPoint point)
{   m_startPoint = point;CFrameWnd::OnLButtonDown(nFlags,point);
}void MFC_Tutorial_Window::OnLButtonUp(UINT nFlags, CPoint point)
{   m_endPoint = point;CPen pen(PS_SOLID, 1, RGB(255,0,0));CWindowDC dc(this);      // 构造dc时必须传入一个CWnd类或其子类对象CPen* pOldPen = dc.SelectObject(&pen);  dc.MoveTo(m_startPoint);dc.LineTo(m_endPoint);dc.SelectObject(pOldPen);CFrameWnd::OnLButtonUp(nFlags, point);
}class MyApp: public CWinApp
{MFC_Tutorial_Window *wnd;
public:BOOL InitInstance(){wnd = new MFC_Tutorial_Window();m_pMainWnd = wnd;m_pMainWnd->ShowWindow(1);return 1;}
};MyApp theApp;

转载于:https://www.cnblogs.com/YukiJohnson/archive/2013/01/05/2846814.html

MFC初步教程(二)相关推荐

  1. MFC初步教程(三):菜单

    菜单是MFC编程中非常重要的一种资源,在MFC中添加菜单有两种方式,一种是以资源的形式静态添加,另一种是动态添加,本文简洁说明第一种形式 ,其步骤如下(从SDK的角度看各种类之间的联系,更容易理解MF ...

  2. MFC初步教程(一)

    学习过很多语言以及环境,对于Java.C++.Qt等都很容易理解,并且能很快上手做项目,唯独对MFC一直浑浑噩噩,不太清楚,参与项目总是独立负责一块,与业务逻辑更相关,用std库的机会多,与GUI.D ...

  3. 【Visual C++】游戏开发五十六 浅墨DirectX教程二十三 打造游戏GUI界面(一)

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/16384009 作者:毛星 ...

  4. mfc基础教程(学习笔记)

    目录 mfc基础教程 第一章:CDC的使用 第二章:文本编程 第三章:菜单 第四章:对话框 第五章:对话框(二) 第六章:样式 第七章:创建兼容DC 第八章:图形的保存与重绘 第九章:文件 第十章:文 ...

  5. Visual C++/MFC入门教程

    Visual C++/MFC入门教程 VC开发指南 1.1 如何学好VC 这个问题很多朋友都问过我,当然流汗是必须的,但同时如果按照某种思路进行有计划的学习就会起到更好的效果.万事开头难,为了帮助朋友 ...

  6. MFC Windows 程序设计[二十八]之字体样式(附源码)

    MFC Windows 程序设计[二十八]之字体样式 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class libraries),以C ...

  7. MFC Windows 程序设计[二十五]之五彩十六宫格(附源码)

    MFC Windows 程序设计[二十五]之五彩十六宫格 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class libraries), ...

  8. Cardboard虚拟现实开发初步(二)

    Google Cardboard 虚拟现实眼镜开发初步(二) Cardboard SDK for Unity的使用 上一篇文章作为系列的开篇,主要是讲了一些虚拟现实的技术和原理,本篇就会带领大家去看一 ...

  9. 黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级)

    原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (高级) 本章介绍的是企业库加密应用程序模块 ...

最新文章

  1. 第十六届全国大学生智能车竞赛航天智慧物流竞赛成绩与奖项
  2. 初探System.Threading.Channels
  3. PHP日期、时间戳相关的小程序
  4. php的date比较时间差,php date 时间差
  5. 帆软报表插件开发之fine-decision中的LogInOutEventProvider扩展
  6. curl Unsupported protocol: https 问题解决
  7. 前端之JQuery:JQuery文档操作
  8. CentOS 7 配置 VNC 远程桌面连接
  9. 4.1 CMMI4级——CMMI4级简述
  10. 北京10万房源压货炒家 新政实施一周无人喝彩
  11. Springboot 整合 阿里云消息队列RabbitMQ版服务
  12. 20210505 秀米导入已发布微信推送的所有内容
  13. vs2015+openCV(x64)出现运行时”无法查找或打开 PDB 文件”问题
  14. Web服务器有哪几种?
  15. 数据分析实战:利用python对心脏病数据集进行分析!
  16. VB6导出Excel - 引用“Microsoft Excel 16.0 Object Library”时找不到该引用-解决方法
  17. 为什么镜像电流源为什么要把c和E极接一条导线
  18. 五一北京周边出行参考
  19. modelsim软件仿真出现现蓝色波形,数字为zzzzzzz开头
  20. 植物微生物组文章目录(2020.01)

热门文章

  1. mysql并发死锁问题解决
  2. db_name,instance_name,service_names,db_domain,dbid,oracle_sid等区别与联系
  3. java中使用QBC的好处_使用QBC的方式应用多对多关系中的查询
  4. (2006, ‘MySQL server has gone away‘) 原因和解决方案
  5. BigDecimal参数8种舍入方式
  6. Spring Cloud Config 使用总结
  7. 异星工厂机器人科技树_异星工场(Factorio)玩法分析与讨论
  8. textarea 内容前端展示换行php处理
  9. while 循环判断时 遇到赋值表达式
  10. 比量iOS6/iOS7, 3.5inch/4.0inch