【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

在win32上面绘制图形其实是比较简单的。要想进行图形绘制,关键是找到设备上下文。就我目前所知道的,获得设备上下文主要有这么几种方式:一、根据BeginPaint获得设备上下文,这主要在WM_PAINT使用;二、根据GetDC获得设备上下文,这主要用在非WM_PAINT消息中;三、CreateDC获得设备上下文,这个主要用在屏幕的截取;四、根据CreateCompatibleDC获得设备上下文,然后通过BitBlt进行绘制,这个一般用在图形界面较多的绘制场景。今天,我们就讨论前面两种,后面两种等遇到了再说。

WM_PAINT下用BeginPaint获得设备上下文是比较常用的方式,比如下面一段代码,

     case WM_PAINT:hdc = BeginPaint(hWnd, &ps);// TODO: Add any drawing code here...MoveToEx(hdc, 100,100,NULL);LineTo(hdc, 150,230);Rectangle(hdc, 200, 200, 300, 300);Ellipse(hdc, 15,15,  130, 130);EndPaint(hdc, &ps);break;

同样一段代码,如果是在鼠标响应的时候调用,应该怎么修改呢?

         case WM_RBUTTONUP:hdc = GetDC(hWnd);// TODO: Add any drawing code here...MoveToEx(hdc, 100,100,NULL);LineTo(hdc, 150,230);Rectangle(hdc, 200, 200, 300, 300);Ellipse(hdc, 15,15,  130, 130);ReleaseDC(hWnd, hdc);break;

大家发现没有,其实绘制的内容都是一样,只是hdc获取的方式发生了改变而已。

其次,这里主要使用了这几个函数,

         MoveToEx(hdc, 100,100,NULL);LineTo(hdc, 150,230);Rectangle(hdc, 200, 200, 300, 300);Ellipse(hdc, 15,15,  130, 130);

这其中MoveToEx和LineTo搭档画直线,Rectangle画矩形,Ellipse画椭圆形。

有兴趣的同学可以试一试。

win32开发(图形绘制)相关推荐

  1. Pygame 游戏开发 图形绘制 键鼠事件

    [Pygame] 游戏开发 第二课 图形绘制 & 键鼠事件 图形绘制 圆形绘制 绘制矩形 绘制直线 绘制圆弧 案例 键鼠事件 键盘事件 鼠标事件 图形绘制 圆形绘制 格式: pygame.dr ...

  2. win32开发(绘制bitmap)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] win32平台支持直接绘制bitmap图片,所以同学们可以从网上直接找一张图片来绘制.一般来说, ...

  3. 网页游戏开发基础——Canvas基本图形绘制

    什么是Canvas?Canvas是HTML5新增的一个标签,你可以把它翻译为画布,通过它可以绘制二维或三维图形,有了它就可以不用安装flash而实现复杂的动画功能.如何通过Canvas绘图?下面我们来 ...

  4. 电脑象棋开发-vc界面图形绘制

    象棋百科全书有一个开发教程. 象棋小巫师里面vc图形绘制介绍: 1. 所有图形通过添加资源的方式加到项目中 2. 调用LoadResBmp加载资源 3. 绘制的基本方式是: hdcTmp = Crea ...

  5. Win32 OpenGL编程系列 2D例子 -- 七巧板图形绘制

    write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 OpenGL系列文章都已经写到3D部分了,但是感觉2D的例子还是少了点,特意弄个外 ...

  6. win32开发(画笔、刷子、字体)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 因为win32开发基本上都是和windows打交道,这些api其他的os也用不到,所以建议大家在 ...

  7. 跟我一起玩Win32开发

    跟我一起玩Win32开发(1):关于C++的几个要点 我不知道各位,一提起 C++ ,第一感觉是什么?而据俺的观察,许多人几乎成了 " 谈 C 色变 " .不管是 C 还是 C++ ...

  8. 史上最扯Java图形绘制(J2SE)之一JAVA动画效果

    很多主一听说Java界面,一水的头大外带血压高,兄弟我倒觉得没什么必要.           其实Java这东西吧,就简便性和其初衷而言,真他妈就在GUI 这地界是有优势的,单就其2D界面开发的易用性 ...

  9. Qt中的基础图形绘制

    文章目录 1 Qt中的基础图形绘制 2 Qt基础图形绘制中的视口和窗口 3 综合实例开发:简易绘图程序 3.1 需求分析 3.2 设计分析 1 Qt中的基础图形绘制 Qt图形系统中的关键角色: QPa ...

最新文章

  1. 深度学习机器臂控制_深度学习新进展:可自建任务解决模型的机器人问世
  2. 牵引力教育分析UI设计在市场饱和度如何?
  3. 法国spin高等计算机学校,法国顶尖“大矿”,一起去矿校挖矿吧!
  4. python高级语法-collections模块下几个新序列
  5. Excel 的点点滴滴
  6. 服务器运行容器工具大盘点!
  7. matlab创建nc文件怎么打开,MATLAB打开nc文件并读取nc文件数据
  8. php程序里的configini_PHP读取配置文件类实例(可读取ini,yaml,xml等)
  9. 4.1线程组(Thread Group)
  10. Android实现Telnet客户端
  11. oa人员导入模板_九思OA办公系统平台:提高企业综合办公能力,助力企业高速成长...
  12. 解决微信公众号accessToken白名单问题
  13. 数论—乘法逆元—费马小定理
  14. java将数据库数据转换成word文档并且生成pdf文件最后转换成对应的图片
  15. 我选择了IT,我会用最大的热诚进军IT大技术!
  16. php 调试 打印错误
  17. DAVINCI DM36x开发攻略——U-BOOT-2010.12及UBL移植
  18. Qt - 换肤功能实现
  19. 目标跟踪(1)基于OpenCV实现单目标跟踪
  20. 北京交通拥堵问题及其建议

热门文章

  1. 02.C(数据类型与运算符)
  2. SpringMVC连接MongoDB操作数据库
  3. Android View.onMeasure方法的理解
  4. IDEA 运行maven命令时报错: -Dmaven.multiModuleProjectDirectory system propery is not set
  5. tomcat PermGen space 不足的解决方法
  6. Adobe Acrobat的安装时出现:服务print spooler启动失败,请确认您有足够权限启动系统服务。解决方法...
  7. (摘)如何配置Windows Live Writer
  8. [Usaco2009 Feb]Bullcow 牡牛和牝牛
  9. 第三周读书笔记《程序员修炼之道》
  10. 计算机编程之高级语言