?? bcb_g17.htm
字號:
<html>
<head>
<title>DrawDib函數組的使用</title>
<meta http-equiv="目錄類型" content="文本/html; 字符集=gb2312">
</head>
<body bgcolor="#FFFFFF">
<table width="100%" border="0" height="285">
<tr>
<td height="35">
<div align="center" class="p14"><font color="#000000">DrawDib函數組的使用</font></div>
</td>
</tr>
<tr valign="top">
<td>
<p align="CENTER"><font lang="ZH-CN" size="3" face="黑體">作者:羅雋</font></p>
<p> <font size="3"></font><font face="宋體" size="3"> Microsoft</font><font face="宋體"><font lang="ZH-CN" size="3">的針對與設備無關位圖(</font><font size="3">DIB</font><font lang="ZH-CN" size="3">位圖),在其</font><font size="3">WIN32
SDK</font><font lang="ZH-CN" size="3">的</font><font size="3">Multimedia</font><font lang="ZH-CN" size="3">中提供了一組繪制</font><font size="3">DIB</font><font lang="ZH-CN" size="3">位圖的高性能函數組──</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組。</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組是一組不依賴于圖形設備接口(</font><font size="3">GDI</font><font lang="ZH-CN" size="3">)函數,而直接操作顯存的函數組。它們支持</font><font size="3">8</font><font lang="ZH-CN" size="3">位、</font><font size="3">16</font><font lang="ZH-CN" size="3">位、</font><font size="3">24</font><font lang="ZH-CN" size="3">位和</font><font size="3">32</font><font lang="ZH-CN" size="3">位圖象深度的</font><font size="3">DIB</font><font lang="ZH-CN" size="3">。總的來說,</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組類似于</font><font size="3">StretchDIBits</font><font lang="ZH-CN" size="3">函數,它們都提供了將圖象拉伸和抖動的功能,然而,</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組還支持圖象的解壓、數據流以及更多的顯示適配器。在某些情況下,</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組還具有更大的優越性。但是,在某些場合下,</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組卻不能取代</font><font size="3">StretchDIBits</font><font lang="ZH-CN" size="3">函數。下面就</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組和</font><font size="3">StretchDIBits</font></font><font lang="ZH-CN" size="3" face="宋體">函數使用的場合加以區別和說明:
</font>
<ul>
<li> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">顏色信息表格式。</font><font face="宋體"><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組只支持顏色信息表格式為</font><font size="3">DIB_RGB_COLORS</font><font lang="ZH-CN" size="3">格式的圖象,如果要顯示以</font><font size="3">DIB_PAL_COLORS</font><font lang="ZH-CN" size="3">或</font><font size="3">DIB_PAL_INDICES</font><font lang="ZH-CN" size="3">格式的圖象,則必須用</font><font size="3">StretchDIBits</font></font><font lang="ZH-CN" size="3" face="宋體">函數。</font></li>
<li> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">光柵操作模式。</font><font face="宋體"><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組只能使用</font><font size="3">SRCCOPY</font><font lang="ZH-CN" size="3">光柵操作模式,如果要求不僅僅使用</font><font size="3">SRCCOPY</font><font lang="ZH-CN" size="3">模式的話,只能用</font><font size="3">StretchDIBits</font><font lang="ZH-CN" size="3">函數。同樣地,如果要使用其他光柵操作,例如</font><font size="3">XOR</font><font lang="ZH-CN" size="3">,只能用</font><font size="3">StretchDIBits</font></font><font lang="ZH-CN" size="3" face="宋體">函數。</font></li>
<li> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">視頻及動畫回放的質量。</font><font face="宋體"><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組支持數據流應用,諸如視頻片和動畫序列,它比</font><font size="3">StretchDIBits</font></font><font lang="ZH-CN" size="3" face="宋體">函數提供了更高的圖象質量以及對回放過程的改進。</font></li>
<li> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">顯示適配器。</font><font face="宋體"><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組比</font><font size="3">StretchDIBits</font><font lang="ZH-CN" size="3">函數支持更多的顯示適配器。</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組支持使用</font><font size="3">4</font><font lang="ZH-CN" size="3">位圖象深度提供</font><font size="3">16</font><font lang="ZH-CN" size="3">色調色板的</font><font size="3">VGA</font><font lang="ZH-CN" size="3">適配器,使用</font><font size="3">8</font><font lang="ZH-CN" size="3">位圖象深度提供</font><font size="3">256</font><font lang="ZH-CN" size="3">色調色板的</font><font size="3">SVGA</font><font lang="ZH-CN" size="3">適配器和使用</font><font size="3">16</font><font lang="ZH-CN" size="3">位、</font><font size="3">24</font><font lang="ZH-CN" size="3">位和</font><font size="3">32</font><font lang="ZH-CN" size="3">位圖象深度提供成千上萬種顏色的真彩色適配器。</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組還使用了受限制的潛在能力提高了圖象在顯示適配器上的速度和質量。例如,當使用</font><font size="3">8</font><font lang="ZH-CN" size="3">位的顯示適配器時,</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組有效地將真彩色圖象抖動為</font><font size="3">256</font><font lang="ZH-CN" size="3">色;同樣的,使用</font><font size="3">4</font><font lang="ZH-CN" size="3">位的顯示適配器時,它們也將</font><font size="3">8</font><font lang="ZH-CN" size="3">位深度的圖象抖動成</font><font size="3">4</font></font><font lang="ZH-CN" size="3" face="宋體">位。</font></li>
<li> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">圖象拉伸。正如</font><font face="宋體"><font size="3">StretchDIBits</font><font lang="ZH-CN" size="3">一樣,</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組用源矩形和目的矩形來控制一個圖象顯示的部分。可以通過改變源矩形和目的矩形的位置和大小來裁剪一幅圖象不需要的部分和拉伸某部分。如果顯示驅動不支持圖象拉伸,那么</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組提供了比</font><font size="3">StretchDIBits</font></font><font lang="ZH-CN" size="3" face="宋體">函數更有效的拉伸能力。</font></li>
<li> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">壓縮圖象。</font><font face="宋體"><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組支持好幾種壓縮和解壓方法,其中包括游程編碼,</font><font size="3">JPEG,Cinepak,411YUV</font><font lang="ZH-CN" size="3">和</font><font size="3">Indeo</font><font size="2">™</font></font><font lang="ZH-CN" size="3" face="宋體">。</font></li>
</ul>
<p align="JUSTIFY"><font lang="ZH-CN"> </font></p>
<p align="JUSTIFY"><font face="宋體">DrawDib</font><font lang="ZH-CN" face="宋體">的操作</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font face="宋體" lang="ZH-CN" size="3">
通過使用</font><font face="宋體"><font size="3">DrawDibOpen</font><font lang="ZH-CN" size="3">函數初始化</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組。</font><font size="3">DrawDibOpen</font><font lang="ZH-CN" size="3">負責裝載動態連接庫</font><font size="3">(DLL)</font><font lang="ZH-CN" size="3">,申請內存資源,</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">設備環境</font><font size="3">(DC)</font><font lang="ZH-CN" size="3">,并且維持初始化相關的設備環境計數。</font><font size="3">DrawDibOpen</font><font lang="ZH-CN" size="3">同時返回一個其它</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數所需要使用的新的</font><font size="3">DC</font></font><font face="宋體" lang="ZH-CN" size="3">句柄。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font face="宋體" lang="ZH-CN" size="3">
當使用完</font><font face="宋體"><font size="3">DrawDib DC</font><font lang="ZH-CN" size="3">后,可以用</font><font size="3">DrawDibClose</font><font lang="ZH-CN" size="3">函數釋放它。</font><font size="3">DrawDibClose</font><font lang="ZH-CN" size="3">同時減少存取</font><font size="3">DLL</font><font lang="ZH-CN" size="3">的應用的計數。在應用程序中,</font><font size="3">DrawDibClose</font><font lang="ZH-CN" size="3">函數應是最后的</font><font size="3">DrawDib</font></font><font face="宋體" lang="ZH-CN" size="3">操作。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font face="宋體" lang="ZH-CN" size="3">
可以創建任意多的</font><font face="宋體"><font size="3">DrawDib DC</font><font lang="ZH-CN" size="3">,也可以同時使用多個</font><font size="3">DrawDib
DC</font><font lang="ZH-CN" size="3">來繪制幾幅位圖。在應用程序中可以創建多個不同性質的</font><font size="3">DrawDib
DC</font><font lang="ZH-CN" size="3">,這樣就可以選擇最合適的</font><font size="3">DC</font><font lang="ZH-CN" size="3">設置。例如,在同一應用程序中,創建兩個不同的</font><font size="3">DrawDib
DC</font></font><font face="宋體" lang="ZH-CN" size="3">,一個用來顯示圖象的正常分辨率,另一個用來顯示圖象的放大部分。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font face="宋體" lang="ZH-CN" size="3">
為了更有效地運行,</font><font face="宋體"><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組需要知道顯示適配器及其驅動的信息。顯示配置信息是在第一次使用包含</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組的</font><font size="3">DLL</font><font lang="ZH-CN" size="3">時,對顯示適配器通過了一系列的測試之后得到的。</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">函數組的所有應用都要用到這個配置信息。可以通過調用</font><font size="3">DrawDibProfileDisplay</font></font><font face="宋體" lang="ZH-CN" size="3">函數來強制重新進行這些測試。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font face="宋體" lang="ZH-CN" size="3">
通常,取得和保存顯示配置是一次性的事件。如果配置信息發現在這個系統中安裝了另一個顯示驅動時,</font><font size="3" face="宋體">DrawDib</font><font face="宋體" lang="ZH-CN" size="3">則重新進行測試。</font></p>
<p align="JUSTIFY"><font lang="ZH-CN"> </font></p>
<p align="JUSTIFY"><font face="宋體" lang="ZH-CN">圖象再現</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font face="宋體" lang="ZH-CN" size="3">
創建了</font><font face="宋體"><font size="3">DrawDib DC</font><font lang="ZH-CN" size="3">后,就可以用</font><font size="3">DrawDibDraw</font><font lang="ZH-CN" size="3">函數將</font><font size="3">DIB</font><font lang="ZH-CN" size="3">繪至屏幕。當在</font><font size="3">8</font><font lang="ZH-CN" size="3">位深度的顯示適配器上顯示真彩色圖象時,</font><font size="3">DrawDib</font></font><font face="宋體" lang="ZH-CN" size="3">將自動地抖動圖象。</font></p>
<p align="JUSTIFY"> <font size="3"></font><font face="宋體" size="3">
DrawDib</font><font face="宋體"><font lang="ZH-CN" size="3">也透明地支持視頻壓縮器。當顯示壓縮位圖時,可通過</font><font size="3">DrawDibGetBuffer</font><font lang="ZH-CN" size="3">函數得到包含了解壓圖象數據的緩沖區。如果位圖是未壓縮的,則</font><font size="3">DrawDibGetBuffer</font><font lang="ZH-CN" size="3">返回</font><font size="3">NULL</font></font><font lang="ZH-CN" size="3" face="宋體">。在應用程序中應自己區分位圖是否壓縮。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">
可用</font><font face="宋體" size="3">DrawDibUpdate</font><font lang="ZH-CN" size="3" face="宋體">宏來刷新一幅圖象的整體或一部分的顯示。</font></p>
<p align="JUSTIFY"><font lang="ZH-CN"> </font></p>
<p align="JUSTIFY"><font face="宋體" lang="ZH-CN">圖象序列</font></p>
<p align="JUSTIFY"><font lang="ZH-CN"><font lang="ZH-CN" size="3" face="宋體">
當</font><font face="宋體"><font size="3">DrawDibDraw</font><font lang="ZH-CN" size="3">函數同</font><font size="3">DrawDibBegin</font><font lang="ZH-CN" size="3">函數一起運用時,可以顯示相同尺寸和格式的位圖序列。</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">通過</font><font size="3">DrawDibBegin</font><font lang="ZH-CN" size="3">準備繪圖的</font><font size="3">DrawDib
DC</font><font lang="ZH-CN" size="3">來提高</font><font size="3">DrawDibDraw</font><font lang="ZH-CN" size="3">的效率。如果,應用程序沒有調用</font><font size="3">DrawDibBegin</font><font lang="ZH-CN" size="3">,那么</font><font size="3">DrawDibDraw</font><font lang="ZH-CN" size="3">會在繪圖前隱含地執行</font><font size="3">DrawDibBegin</font></font><font lang="ZH-CN" size="3" face="宋體">。</font></font></p>
<p align="JUSTIFY"> <font size="3"></font><font face="宋體" size="3">
DrawDibBegin</font><font face="宋體"><font lang="ZH-CN" size="3">給</font><font size="3">DrawDibDraw</font><font lang="ZH-CN" size="3">提供了</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">的</font><font size="3">DC</font><font lang="ZH-CN" size="3">,</font><font size="3">DC</font><font lang="ZH-CN" size="3">的句柄,</font><font size="3">BITMAPINFOHEADER</font><font lang="ZH-CN" size="3">結構的地址和源矩形及目的矩形的尺寸。當要顯示一個位圖序列時,</font><font size="3">DrawDibDraw</font><font lang="ZH-CN" size="3">要檢查序列中的每幅圖象的這些值。如果</font><font size="3">DrawDibDraw</font><font lang="ZH-CN" size="3">檢測到這些值有任何變化,它將隱含地再次調用</font><font size="3">DrawDibBegin</font><font lang="ZH-CN" size="3">來調整</font><font size="3">DrawDib
DC</font></font><font lang="ZH-CN" size="3" face="宋體">的設置。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">
當調用完</font><font face="宋體"><font size="3">DrawDibBegin</font><font lang="ZH-CN" size="3">后,就可以指定一個或多個適當的標志來調用</font><font size="3">DrawDibDraw</font><font lang="ZH-CN" size="3">繪制圖象序列。只要</font><font size="3">DC</font><font lang="ZH-CN" size="3">句柄未改變,就可指定</font><font size="3">DDF_SAME_HDC</font><font lang="ZH-CN" size="3">標志;下列參數未改變,就可指定</font><font size="3">DDF_SAME_DRAW</font><font lang="ZH-CN" size="3">標志:</font><font size="3">BITMAPINFOHEADER</font></font><font lang="ZH-CN" size="3" face="宋體">結構的地址和源矩形及目的矩形的尺寸。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">
可以通過在</font><font face="宋體"><font size="3">DrawDibEnd</font><font lang="ZH-CN" size="3">后跟另一個</font><font size="3">DrawDibBegin</font><font lang="ZH-CN" size="3">調用來更新前一個</font><font size="3">DrawDibBegin</font><font lang="ZH-CN" size="3">設置的標志。</font><font size="3">DrawDibEnd</font><font lang="ZH-CN" size="3">清除了當前的</font><font size="3">DrawDib
DC</font><font lang="ZH-CN" size="3">的標志和設置。后續的調用</font><font size="3">DrawDibBegin</font><font lang="ZH-CN" size="3">將重新初始化</font><font size="3">DrawDib
DC</font><font lang="ZH-CN" size="3">,并重新設置適當的標志和設置。然而,只要至少改變了以下任一個當前的標志設置:</font><font size="3">BITMAPINFOHEADER</font><font lang="ZH-CN" size="3">結構的地址或是源矩形或目的矩形的尺寸,也可不使用</font><font size="3">DrawDibEnd</font><font lang="ZH-CN" size="3">而直接調用</font><font size="3">DrawDibBegin</font><font lang="ZH-CN" size="3">來更新一個</font><font size="3">DrawDib
DC</font></font><font lang="ZH-CN" size="3" face="宋體">。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">
通過使用</font><font face="宋體"><font size="3">DrawDibStart</font><font lang="ZH-CN" size="3">和</font><font size="3">DrawDibStop</font><font lang="ZH-CN" size="3">函數,可以提高使用壓縮圖象的數據流操作(如回放一個視頻片)的</font><font size="3">DrawDibDraw</font><font lang="ZH-CN" size="3">的效率。</font><font size="3">DrawDibStart</font><font lang="ZH-CN" size="3">通過發送一個消息告訴視頻管理器(</font><font size="3">VCM</font><font lang="ZH-CN" size="3">)準備</font><font size="3">DrawDib
DC</font><font lang="ZH-CN" size="3">來接受一個圖象流。當流結束時,</font><font size="3">DrawDibStop</font><font lang="ZH-CN" size="3">發送一個消息給</font><font size="3">VCM</font></font><font lang="ZH-CN" size="3" face="宋體">來指示它釋放申請的資源。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">
需要注意的是,在應用程序中必須確定源矩形和目的矩形的寬度和高度;然而卻并不需要確定這些矩形的起點。應用程序可以重新</font><font size="3" face="宋體">DrawDibDraw</font><font lang="ZH-CN" size="3" face="宋體">中的起點坐標來使用圖象的不同部分或更新顯示的不同部分。</font></p>
<a name="xxqqWholeArea"></a>
<p align="JUSTIFY"><font lang="ZH-CN"> </font></p>
<p align="JUSTIFY"><font face="宋體" lang="ZH-CN"><a name="xxqqWholeArea"><font color="#000000">調色板</font></a></font></p>
<p align="JUSTIFY"> <font size="3"></font><font face="宋體" size="3">
DrawDib</font><font face="宋體"><font lang="ZH-CN" size="3">函數組需要響應兩條調色板消息:</font><font size="3">WM_QUERYNEWPALETTE</font><font lang="ZH-CN" size="3">和</font><font size="3">WM_PALETTECHANGED</font></font><font lang="ZH-CN" size="3" face="宋體">。如果應用程序未注意到調色板,就需要對這些消息都增加一個各自的消息處理。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">
通過使用</font><font face="宋體"><font size="3">DrawDibRealize</font><font lang="ZH-CN" size="3">函數可在當前</font><font size="3">DC</font><font lang="ZH-CN" size="3">中實現當前</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">的調色板。應當在響應</font><font size="3">WM_QUERYNEWPALETTE</font><font lang="ZH-CN" size="3">和</font><font size="3">WM_PALETTECHANGED</font><font lang="ZH-CN" size="3">消息時,或在用</font><font size="3">DrawDibDraw</font></font><font lang="ZH-CN" size="3" face="宋體">函數顯示一個圖象序列的準備過程中實現調色板。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">
可以用</font><font face="宋體"><font size="3">DrawDibSetPallette</font><font lang="ZH-CN" size="3">函數用另一個調色板的映射來繪一幅圖象。</font><font size="3">DrawDibSetPallette</font><font lang="ZH-CN" size="3">強迫</font><font size="3">DrawDib
DC</font><font lang="ZH-CN" size="3">使用指定的調色板,而這會影響到圖象的質量。例如,一個注意調色板的應用程序,可能已經實現了一個調色板并需要阻止</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">實現它自己的調色板。應用程序可以通過</font><font size="3">DrawDibSetPalette</font><font lang="ZH-CN" size="3">來通知</font><font size="3">DrawDib</font></font><font lang="ZH-CN" size="3" face="宋體">調色板的使用。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋體">
通過使用</font><font size="3" face="宋體">DrawDibGetPallette</font><font lang="ZH-CN" size="3" face="宋體">函數可以獲得當前前景調色板的一個句柄。如果應用程序使用了當前前景調色板,它并沒有對調色板的完全使用權,另一個應用程序能夠使這個調色板句柄無效。當使用完畢后,應用程序不應該釋放調色板,那樣會使另一個應用程序不能使用調色板。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font face="宋體" lang="ZH-CN" size="3">
通過使用</font><font face="宋體"><font size="3">DrawDibChangPallete</font><font lang="ZH-CN" size="3">函數可以為它的調色板</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">來接收新的顏色值。在緊跟</font><font size="3">DrawDibChangPallete</font><font lang="ZH-CN" size="3">的后面的代碼里,可以為調色板顏色表指定新的值。當調用</font><font size="3">DrawDibChangPalette</font><font lang="ZH-CN" size="3">時,在</font><font size="3">DrawDib
DC</font><font lang="ZH-CN" size="3">中未設置</font><font size="3">DDF_ANIMATE</font><font lang="ZH-CN" size="3">標志的話,可以通過使用</font><font size="3">DrawDibRealize</font><font lang="ZH-CN" size="3">來實現調色板和</font><font size="3">DrawDibDraw</font><font lang="ZH-CN" size="3">重繪圖象來實現調色板的改變。如果</font><font size="3">DDF_ANIMATE</font><font lang="ZH-CN" size="3">標志在</font><font size="3">DrawDib
DC</font><font lang="ZH-CN" size="3">中設置了,就可以通過</font><font size="3">DrawDibDraw</font><font lang="ZH-CN" size="3">或</font><font size="3">DrawDibRealize</font><font lang="ZH-CN" size="3">來實現調色板和顯示著的位圖顏色的動畫。通過</font><font size="3">DrawDibEnd</font><font lang="ZH-CN" size="3">和</font><font size="3">DrawDibBegin</font><font lang="ZH-CN" size="3">可以</font><font size="3">DDF_ANIMATE</font></font><font face="宋體" lang="ZH-CN" size="3">標志。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font face="宋體" lang="ZH-CN" size="3">
如果釋放了被選入</font><font face="宋體"><font size="3">DC</font><font lang="ZH-CN" size="3">的</font><font size="3">DrawDib</font><font lang="ZH-CN" size="3">調色板,</font><font size="3">DC</font><font lang="ZH-CN" size="3">使用調色板時會報告一個</font><font size="3">GDI</font><font lang="ZH-CN" size="3">錯誤。相反,應該使用</font><font size="3">DrawDibSetPalette</font><font lang="ZH-CN" size="3">改變</font><font size="3">DrawDib
DC</font></font><font face="宋體" lang="ZH-CN" size="3">來使用省缺調色板后另一調色板。</font></p>
<p align="JUSTIFY"> <font lang="ZH-CN" size="3"></font><font face="宋體" lang="ZH-CN" size="3">
由于以下函數會釋放</font><font face="宋體"><font size="3">DrawDib</font><font lang="ZH-CN" size="3">調色板,所以,除非調色板不被</font><font size="3">DC</font><font lang="ZH-CN" size="3">選中不應使用:</font><font size="3">DrawDibEnd,DrawDibClose</font><font lang="ZH-CN" size="3">和</font><font size="3">DrawDibBegin</font><font lang="ZH-CN" size="3">。同樣的,當使用了相同的</font><font size="3">DrawDib
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -