⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000007.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;Kongming&nbsp;(没日没夜...),&nbsp;信区:&nbsp;Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;MiniGUI&nbsp;的特色(5)&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Fri&nbsp;Jul&nbsp;&nbsp;2&nbsp;16:16:21&nbsp;1999)&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>五、图形设备接口&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;图形设备接口,即GDI,&nbsp;MiniGUI&nbsp;中用来实现图形输出的模块。&nbsp;<BR>&nbsp;<BR>5.1&nbsp;&nbsp;基本概念&nbsp;<BR>&nbsp;<BR>5.1.1&nbsp;&nbsp;图形设备&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;在&nbsp;MiniGUI&nbsp;中,采用了在&nbsp;Windows&nbsp;和&nbsp;X&nbsp;Window&nbsp;中普遍采用的图形设备&nbsp;<BR>概念。每个图形设备定义了计算机显示屏幕上的一个矩形输出区域。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;在调用图形输出函数时,均要求指定经初始化,或经建立的图形设备上下&nbsp;<BR>文,或设备环境(DC)。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;每个图形输出均局限在图形设备指定的矩形区域内。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;在多窗口系统中,各个图形设备之间的输出互相剪切,以避免图形输出之&nbsp;<BR>间互相影响。&nbsp;<BR>&nbsp;<BR>5.1.2&nbsp;&nbsp;剪切域&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;剪切域就是在图形设备上定义的一个区域,所有在该图形设备上进行的&nbsp;<BR>图形输出,超过剪切域的部分,均被裁剪。只有在剪切域上的图形输出才是&nbsp;<BR>可见的输出。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MiniGUI&nbsp;中的剪切域,定义为矩形剪切域的集合。&nbsp;<BR>&nbsp;<BR>5.1.3&nbsp;&nbsp;映射模式&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;映射模式指定了特定图形输出的坐标值如何映射到图形设备的坐标值。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;图形设备的坐标系原点定义为图形设备矩形区域的左上角。向右为正&nbsp;X&nbsp;&nbsp;<BR>坐标轴方向;向下为正&nbsp;Y&nbsp;坐标轴方向。这一坐标系称为设备坐标系。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;通过&nbsp;GDI&nbsp;模块的映射模式操作函数,可定义自己的逻辑坐标系。逻辑&nbsp;<BR>坐标系可以是设备坐标系的水平或垂直反转,缩放,或者偏移。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;多数&nbsp;GDI&nbsp;输出函数指定的是逻辑坐标系。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;默认情况下,逻辑坐标系和设备坐标系是重合的。&nbsp;<BR>&nbsp;<BR>5.2&nbsp;&nbsp;GDI&nbsp;功能特性的分类说明&nbsp;<BR>&nbsp;<BR>5.2.1&nbsp;&nbsp;图形设备能力&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;通过调用函数GetGDCapability,可获得图形设备的如下能力:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;颜色数目;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;水平和竖直方向的象素点数;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设备坐标系中可见点的最大&nbsp;x&nbsp;和&nbsp;y&nbsp;坐标值。&nbsp;<BR>&nbsp;<BR>5.2.2&nbsp;&nbsp;创建、销毁或获取、释放图形设备接口&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;和&nbsp;Win32&nbsp;类似,MiniGUI&nbsp;中也有一个&nbsp;DC&nbsp;的缓冲区,应用可调用&nbsp;GetDC&nbsp;&nbsp;<BR>或&nbsp;GetClientDC&nbsp;函数从&nbsp;DC&nbsp;缓冲区中获取图形设备环境,在结束使用&nbsp;DC&nbsp;之&nbsp;<BR>后,应当调用&nbsp;ReleaseDC&nbsp;函数释放&nbsp;DC。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;应用也可以建立自己私有的&nbsp;DC,这种&nbsp;DC&nbsp;可以是全局有效的&nbsp;DC,由于&nbsp;<BR>免除了获取和释放以及初始化等工作,因此,利用这种&nbsp;DC&nbsp;可加速图形显示。&nbsp;<BR>当应用不再使用私有&nbsp;DC&nbsp;时,应当利用&nbsp;DeletePrivateDC&nbsp;删除私有&nbsp;DC。下&nbsp;<BR>面的代码即利用了这种&nbsp;DC:&nbsp;<BR>&nbsp;<BR>int&nbsp;TestMainWinProc2(HWND&nbsp;hWnd,&nbsp;int&nbsp;message,&nbsp;WPARAM&nbsp;wParam,&nbsp;LPARAM&nbsp;lParam)&nbsp;<BR>{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;HDC&nbsp;hdc;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;HDC&nbsp;hPaintDC;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;x,&nbsp;y;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;RECT&nbsp;client;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;int&nbsp;count&nbsp;=&nbsp;0;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;BITMAP&nbsp;bitmap;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;BOOL&nbsp;fValid&nbsp;=&nbsp;FALSE;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;int&nbsp;paintCount&nbsp;=&nbsp;0;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(message)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;MSG_CREATE:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetTimer&nbsp;(hWnd,&nbsp;100,&nbsp;20);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetTimer&nbsp;(hWnd,&nbsp;200,&nbsp;5);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(LoadBitmap(&amp;bitmap,&nbsp;&quot;res/j11b.BMP&quot;)&nbsp;&lt;&nbsp;0)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fprintf&nbsp;(stderr,&nbsp;&quot;Test&nbsp;Main&nbsp;Win:&nbsp;Loading&nbsp;bitmap&nbsp;failure!\n&quot;);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fValid&nbsp;=&nbsp;TRUE;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;MSG_SHOWWINDOW:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(wParam&nbsp;==&nbsp;SW_SHOWNORMAL)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hdc&nbsp;=&nbsp;CreatePrivateClientDC&nbsp;(hWnd);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;MSG_PAINT:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hPaintDC&nbsp;=&nbsp;BeginPaint&nbsp;(hWnd);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;testdc&nbsp;(hPaintDC,&nbsp;fValid?&amp;bitmap:NULL);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EndPaint&nbsp;(hWnd,&nbsp;hPaintDC);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;MSG_LBUTTONDBLCLK:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;MSG_TIMER:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(ISINBACKGROUND)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(wParam&nbsp;==&nbsp;100)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paintCount&nbsp;++;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(paintCount&nbsp;%&nbsp;10&nbsp;!=&nbsp;0)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetClientRect&nbsp;(hWnd,&nbsp;&amp;client);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;=&nbsp;random()&nbsp;%&nbsp;(RECTW&nbsp;(client));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;=&nbsp;random()&nbsp;%&nbsp;(RECTH&nbsp;(client));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SetPenColor(hdc,&nbsp;RGB2Index&nbsp;(hdc,&nbsp;random()&nbsp;%&nbsp;256,&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;random()&nbsp;%&nbsp;256,&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;random()&nbsp;%&nbsp;256));&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LineTo(hdc,&nbsp;x,&nbsp;y);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InvalidateRect&nbsp;(hWnd,&nbsp;NULL,&nbsp;TRUE);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(wParam&nbsp;==&nbsp;200)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(count&nbsp;&lt;&nbsp;5)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ping&nbsp;();&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;++;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KillTimer&nbsp;(hWnd,&nbsp;200);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;MSG_CLOSE:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KillTimer&nbsp;(hWnd,&nbsp;100);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KillTimer&nbsp;(hWnd,&nbsp;200);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UnloadBitmap&nbsp;(&amp;bitmap);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DeletePrivateDC&nbsp;(hdc);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DestroyMainWindow&nbsp;(hWnd);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PostQuitMessage&nbsp;(hWnd);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;DefaultMainWinProc(hWnd,&nbsp;message,&nbsp;wParam,&nbsp;lParam);&nbsp;<BR>}&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;上述代码在应用主窗口建立时创建了私有&nbsp;DC,然后在定时器消息中利用&nbsp;<BR>私有&nbsp;DC&nbsp;进行绘制,最后在关闭窗口时删除了私有&nbsp;DC。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;MiniGUI&nbsp;也支持内存中的虚拟&nbsp;DC,可通过CreateCompatibleDC&nbsp;建立内&nbsp;<BR>存&nbsp;DC,利用这种&nbsp;DC,可加速绘制过程,并减少绘制过程中闪烁现象。应用&nbsp;<BR>可使用DeleteCompatibleDC&nbsp;函数删除内存&nbsp;DC。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;上述&nbsp;DC&nbsp;的创建或获取与&nbsp;Win32&nbsp;API&nbsp;有较明显的不同。&nbsp;<BR>&nbsp;<BR>5.2.3&nbsp;&nbsp;一般绘制属性&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;这类功能用来设置&nbsp;DC&nbsp;的绘制属性,这些属性及其影响的绘图操作在&nbsp;<BR>表&nbsp;5.1&nbsp;中列出。&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -