做物流网站费用多少,邢台手机网站建设信息,小电商平台有哪些,淄博高端网站再次强调一下#xff0c;我们这里学习的MFC图形函数#xff0c;是指绘制二维图形的函数。一般来说#xff0c;一个二维图形组成的基本要素是点、线、面以及相关的颜色。在本文中#xff0c;将学习绘制像素点函数#xff0c;与绘制像素点相关的其它基础知识也随着绘图函数学… 再次强调一下我们这里学习的MFC图形函数是指绘制二维图形的函数。一般来说一个二维图形组成的基本要素是点、线、面以及相关的颜色。在本文中将学习绘制像素点函数与绘制像素点相关的其它基础知识也随着绘图函数学习一并介绍。 一、关于绘制像素点有两个功能相同的函数 1函数SetPixel函数 原型COLORREF SetPixel(int x,int y,COLORREF color); 参数x、y屏幕上像素点坐标 clolor 绘制像素点使用的颜色 返回值返回值类型为COLORREF即返回所使用的颜色 2SetPixelV函数 原型BOOL SetPixelV(int x,int y,COLORREF color); 参数x、y屏幕上像素点坐标 color 绘制像素点使用的颜色 返回值返回值为BOOL类型成功返回非0数失败返回0 二、对两个函数的说明 1这两个函数的绘图效果是一样的第二个函数的执行速度要快一些。 2两个函数的返回值类型不同。 3这两个函数都是CDC类的成员函数因此使用时都需要CDC类对象或指针调用我们在OnDraw函数中绘图时传入的参数pDC就是CDC类对象指针使用它就能调用各种绘图函数格式pDC-SetPixel(x,y,color);。 三、相关基础知识 1CDC类定义设备上下文对象的基类设备可以理解成就是显示屏上下文就是显示的内容这个类内封装了绘图所需的成员函数。绘制像素点的两个函数就是这个类的成员函数所以使用这两个函数需要CDC类的指针调用。这个类的函数还有很多后边会一一学到。 2关于COLORREF它是MFC中表示颜色的一个类型其本质是DWORD无符号长整型。为COLOREF对象赋值会使用到一个有参宏RGB()和函数差不多RGB宏返回值就是COLORREF类型的颜色值可供有关绘图函数使用。RGB有三个参数red、green、blue。这三个参数的类型是BYTEBYTE类型的本质是由8个二进制位组成的无符号整形和char一样十进制取值范围是0~255。 举例定义一个纯红色COLORREF对象步骤COLORREF RedRGB(255,0,0);。我们把这个Red作为参数传入到绘制像素点函数内就能绘制出红色的点了。 四、案例程序提示代码插入到OnDraw函数TODO:下面即可运行 编制一段MFC程序在自定义坐标系中将 -5≤ x ≤5 且 -5≤ y ≤5区域内的所有像素点画成红色。代码及注释见下
//设置自定义坐标系代码CRect rect;//定义CRect类对象GetClientRect(rect);//将窗口客户区位置、大小信息保存到rect中pDC-SetMapMode(MM_ANISOTROPIC); //模式选择自定义坐标系pDC-SetWindowExt(rect.Width(), rect.Height()); //设置逻辑窗口尺寸pDC-SetViewportExt(rect.Width(), -rect.Height()); //设置窗口物理尺寸pDC-SetViewportOrg(rect.Width()/2, rect.Height()/2);//设置原点rect.OffsetRect(-rect.Width() / 2, -rect.Height() / 2);//重置rect的位置
//在自定义坐标系 -5≤ x ≤5 且 -5≤ y ≤5组成的方形区域内画上红色像素点COLORREF Red RGB(255,0,0); //设置红色for (int x -5; x 5; x) //x轴循环{for (int y -5; y 5; y) //y轴循环{pDC-SetPixelV(x,y,Red); //利用OnDraw参数pDC调用SetPixelV}}
//运行效果在窗口正中出现一个10*10像素的红色方块。