win32开发(图形绘制)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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开发(图形绘制)相关推荐
- Pygame 游戏开发 图形绘制 键鼠事件
[Pygame] 游戏开发 第二课 图形绘制 & 键鼠事件 图形绘制 圆形绘制 绘制矩形 绘制直线 绘制圆弧 案例 键鼠事件 键盘事件 鼠标事件 图形绘制 圆形绘制 格式: pygame.dr ...
- win32开发(绘制bitmap)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] win32平台支持直接绘制bitmap图片,所以同学们可以从网上直接找一张图片来绘制.一般来说, ...
- 网页游戏开发基础——Canvas基本图形绘制
什么是Canvas?Canvas是HTML5新增的一个标签,你可以把它翻译为画布,通过它可以绘制二维或三维图形,有了它就可以不用安装flash而实现复杂的动画功能.如何通过Canvas绘图?下面我们来 ...
- 电脑象棋开发-vc界面图形绘制
象棋百科全书有一个开发教程. 象棋小巫师里面vc图形绘制介绍: 1. 所有图形通过添加资源的方式加到项目中 2. 调用LoadResBmp加载资源 3. 绘制的基本方式是: hdcTmp = Crea ...
- Win32 OpenGL编程系列 2D例子 -- 七巧板图形绘制
write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 OpenGL系列文章都已经写到3D部分了,但是感觉2D的例子还是少了点,特意弄个外 ...
- win32开发(画笔、刷子、字体)
[ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 因为win32开发基本上都是和windows打交道,这些api其他的os也用不到,所以建议大家在 ...
- 跟我一起玩Win32开发
跟我一起玩Win32开发(1):关于C++的几个要点 我不知道各位,一提起 C++ ,第一感觉是什么?而据俺的观察,许多人几乎成了 " 谈 C 色变 " .不管是 C 还是 C++ ...
- 史上最扯Java图形绘制(J2SE)之一JAVA动画效果
很多主一听说Java界面,一水的头大外带血压高,兄弟我倒觉得没什么必要. 其实Java这东西吧,就简便性和其初衷而言,真他妈就在GUI 这地界是有优势的,单就其2D界面开发的易用性 ...
- Qt中的基础图形绘制
文章目录 1 Qt中的基础图形绘制 2 Qt基础图形绘制中的视口和窗口 3 综合实例开发:简易绘图程序 3.1 需求分析 3.2 设计分析 1 Qt中的基础图形绘制 Qt图形系统中的关键角色: QPa ...
最新文章
- 深度学习机器臂控制_深度学习新进展:可自建任务解决模型的机器人问世
- 牵引力教育分析UI设计在市场饱和度如何?
- 法国spin高等计算机学校,法国顶尖“大矿”,一起去矿校挖矿吧!
- python高级语法-collections模块下几个新序列
- Excel 的点点滴滴
- 服务器运行容器工具大盘点!
- matlab创建nc文件怎么打开,MATLAB打开nc文件并读取nc文件数据
- php程序里的configini_PHP读取配置文件类实例(可读取ini,yaml,xml等)
- 4.1线程组(Thread Group)
- Android实现Telnet客户端
- oa人员导入模板_九思OA办公系统平台:提高企业综合办公能力,助力企业高速成长...
- 解决微信公众号accessToken白名单问题
- 数论—乘法逆元—费马小定理
- java将数据库数据转换成word文档并且生成pdf文件最后转换成对应的图片
- 我选择了IT,我会用最大的热诚进军IT大技术!
- php 调试 打印错误
- DAVINCI DM36x开发攻略——U-BOOT-2010.12及UBL移植
- Qt - 换肤功能实现
- 目标跟踪(1)基于OpenCV实现单目标跟踪
- 北京交通拥堵问题及其建议
热门文章
- 02.C(数据类型与运算符)
- SpringMVC连接MongoDB操作数据库
- Android View.onMeasure方法的理解
- IDEA 运行maven命令时报错: -Dmaven.multiModuleProjectDirectory system propery is not set
- tomcat PermGen space 不足的解决方法
- Adobe Acrobat的安装时出现:服务print spooler启动失败,请确认您有足够权限启动系统服务。解决方法...
- (摘)如何配置Windows Live Writer
- [Usaco2009 Feb]Bullcow 牡牛和牝牛
- 第三周读书笔记《程序员修炼之道》
- 计算机编程之高级语言