programming windows |
您所在的位置:网站首页 › hdc怎么读 › programming windows |
5-2 设备环境
引言
如果希望在屏幕上绘制图形,则必须获取设备环境的句柄。当windows把这个句柄交给你的程序,就说明赋予你了这个设备的使用权限。 5-2-1获取设备环境句柄1.使用BeginPaint和EndPaint函数。 hdc = BeginPaint(hwnd,&ps); ... EndPaint(hwnd,&ps);ps结构体中有一个名为rcPaint的矩形结构,代表无效范围,也就是可以绘图的区域 2.处理非WM_PAINT消息时 hdc = GetDC(hwnd); ... ReleaseDC(hwnd,hdc);GetDC返回的句柄可以在整个客户区内绘制 3.更通用的函数 hdc = CreateDC(pszDriver, pszDevice, pszOutput, pData); ... DeleteDC(hdc); 5-2-2 获取设备环境的信息1、 iValue = GetDeviceCaps(hdc, iIndex);根据iIndex的值不同返回不同的信息。例如,当iIndex为HORZRES时,返回显示器宽度像素,或者打印机显示区域的宽度。 5-2-4 设备的尺寸1、调用GetSystemMetrics(SM_CXSCREEN或SM_CYSCREEN)获得显示器的像素规模 2、传统的排版中,字体一磅即1/72英寸,字体的大小就是头到脚的距离(不包括重音符号),10磅即10/72英寸高度。 3、小字体和大字体。 小字体表示每英寸96像素,大字体表示每英寸120个像素,所以10磅的字体可能有不同像素数。 小字体是96 x 10/72像素, 大字体是120 x 10/72像素。 4、GetDeviceCaps可以获得以每英寸像素点数为单位的假定分辨率。 需要使用两个参数,LOGPIXELSX,LOGPIXELSY,基本含义是以每英寸像素数计算的非实际分辨率。 5、计算字体大小公式 : 水平尺寸 = 25.4 x (/(第4步计算出来的像素数)) 5-2-5 色彩ABC1、每个像素的颜色位数可以用iBitsPixel = GetDeviceCaps(hdc, BITSPIXEL)来获得 5-2-6 设备环境属性 5-2-7保存设备环境1、idSaved = SaveDC(hdc); 保存设备环境 RestoreDC(hdc,idSaved);可以返回保存的设备环境 2、可以不用返回值SaveDC(hdc) 然后使用RestoreDC(hdc,-1)使设备环境恢复到最近一次保存的状态 5-3点和线的绘制 5-3-1设定像素1.SetPixel(hdc, x, y, crColor)将x,y点设置为某个特定的颜色 相对应的 ceColor = GetPixel(hdc,x,y ); 5-3-2 直线 为了画一条直线,需要调用两个函数,一个用来确定起点,一个用来确定终点.MoveToEx(hdc, xBeg, yBeg, NULL); LineTo(hdc, xEnd, yEnd); 获取当前位置 GetCurrentPositionEx(hdc, &pt) Draw lines over an array of points POINT apt[5] = {100, 100, 200, 100, 200, 200, 100, 200, 100, 100} |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |