C语言 Nginx环境搭建 qt servlets graphics orm ansible bitmap 郑州网络 pmp培训视频 mac安装hadoop linux下载器 solidworks图库 mysql 连接 python变量定义 linux配置python环境 java中string java的substring java集成 搭建java开发环境 猫爪 dll文件下载 超级煎蛋卷 打马赛克的软件 微信超级好友 1660ti ae脚本管理器 字幕提取 电脑密码查看器 begininvoke vs2003 mysql使用教程 服务器之家 dos命令大全及用法 android计算器 linux解压文件 shell数组遍历 cdr快捷键设置 cf兑换券 联想人脸识别
当前位置: 首页 > 学习教程  > 编程语言

Windows_绘图基础

2020/8/11 20:48:42 文章标签:

1.GDI结构

由几百个函数以及相关的一些数据类型、宏和结构组成。

GDI支持与设备无关的图形。可以将GDI看作图形设备硬件的一种高层接口。

1.2.GDI函数调用

   五大类:

  1.获取(或建立)和释放设备环境函数GetDC/ReleaseDC、BeginPaint/EndPaint

  2.获取设备环境信息的函数GetTextMetrics

  3.绘图函数

  4.设置和获取设备环境信息属性的函数

  5.使用GDI对象的函数

1.3.GDI基本图形

线条和曲线、可被填充的封闭区域、位图、文本

2.设备环境

2.1获取设备环境句柄

除了前一章讲的两个获取设备环境句柄外(hdc = BeginPaint()只在客户区无效的矩形范围绘图,hdc = GetDC() 在整个客户区内绘制。二者各自必须成对使用)还有:

获取整个窗口的设备环境句柄

hdc = GetWindowDC(HWND);

ReleaseDC(HWND, hdc);

使用它就应捕获WM_NCPAINT消息,Windows使用此消息在窗口的非客户区绘图。

更通用的获取整个屏幕的设备环境句柄

hdc = CreateDC(TEXT("DISPLAY"), NULL, NULL, NULL);

DeleteDC((hdc);

仅仅获取设备环境和信息而不需要绘制任何东西的

hdc = CreateIC(TEXT("DISPLAY"), NULL, NULL, NULL);

处理位图时,可能用到的一个设备环境

hdcMen = CreateCompatibleDC(hdc);

DeleteDC((hdcMen);

2.2 获取设备环境的信息

iValue = GetDeviceCaps(hdc, iIndex);

iIndex为HORZES时返回以像素为单位的宽度,为VERTRES时返回以像素为单位的设备的高度。hdc若为屏幕设备环境句柄则与GetSystemMetrics()函数获取信息相同。

2.3 保存设备环境

调用GetDC/BeginPaint函数后进行释放,则会丢掉对属性所做的任何改变。要想它一直有效

在注册窗口类时加入CS_OWNDC

wndclass.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;

CS_OWNDC仅影响GetDC和BeginPaint函数获得的设备环境。

一种函数可以像git一样可以找回在变更绘制后进行恢复原来的设备环境

保存函数:(可以多次进行保存)

idSaved = SaveDC(hdc);

恢复函数:(只恢复最近一次由SaveDC保存的状态)

RestoreDC(hdc, idSaved);

3.点和线的绘制

3.1设定像素

3.2使用现有画笔

Windows中使用句柄来操作画笔。

获取备用画笔的句柄:

HPEN hPen = GetStockObject(WHITE_PEN);

WHITE_PEN白色画笔名

将该画笔选入设备环境

SelectObject(hdc, hPen);

如果想使用BLACK_PEN

SelectObject(hdc, GetStockObject(BLACK_PEN));

也可以使用上一次画笔即SelectObject函数的返回值为上一次画笔的句柄具体使用如下

  

 


本文链接: http://www.dtmao.cc/news_show_100428.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?