win32开发(图形绘制)
来源:互联网 发布:做淘宝直播怎么找商家 编辑:程序博客网 时间:2024/06/06 19:55
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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画椭圆形。
有兴趣的同学可以试一试。
阅读全文
0 0
- win32开发(图形绘制)
- win32开发(绘制bitmap)
- libGDX开发教程(二)--图形绘制
- libGDX开发教程(二)--图形绘制
- AE开发---绘制图形
- ios开发图形绘制
- AE开发---绘制图形
- 图形绘制布局开发_如何绘制几何图形(LuaJava)
- ios开发图形绘制相关
- OpenGL应用开发---图形绘制
- Silverlight开发历程—(绘制放射渐变图形)
- android opengl 原理及开发(2)绘制基本图形
- opengl 开发笔记-绘制图形(图元)
- Win32 OpenGL编程系列 2D例子 -- 七巧板图形绘制
- 【win32】day07-图形绘制/GDI绘图对象-画笔/画刷
- NETCF开发之绘制图形报表
- C++Directx11开发笔记三:绘制图形
- 电脑象棋开发-vc界面图形绘制
- bootstrap元素排版
- LNMP
- Android [小技巧] 启动界面
- 将自己的Java程序转为exe文件
- android studio 系统学习笔记(一)android studio界面介绍
- win32开发(图形绘制)
- 过滤Login自动登录
- 2017.12.19
- android studio Error:(1, 1) 错误: 非法字符: '\ufeff' 解决方案
- Jni中数组传参
- testtrymd
- markdown编辑器语法
- ubuntu16.04安装opencv找不到cv2.so问题解决
- java关于多线程相关问题