?? clipper.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>裁減器</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<b><font FACE="黑體" SIZE="5">
<p align="center"></font><a name="目錄"><font face="宋體" size="6" color="#FF8000">裁減器</font></a></b></p>
<b><font size="6">
<p align="right" style="margin-top: -10; margin-bottom: -8"></font></b><a href="index.htm"
style="text-decoration: none"><font face="宋體" size="3"><span
style="text-decoration: none">返回上級</span></font></a><font FACE="黑體" size="3"></p>
<hr>
</font>
<blockquote>
<font face="宋體" size="3"><ol>
<li><a href="#什么是“裁減器(Clipper)”對象">什么是“裁減器(</font><font
FACE="Arial" SIZE="3">Clipper</font><font face="宋體" size="3">)”對象</a></li>
<li><a href="#裁減清單">裁減清單(</font><font FACE="Arial" SIZE="3">Clip list</font><font
face="宋體" size="3">)</a></li>
<li><a href="#共享DirectDrawClipper對象">共享</font><font FACE="Arial" SIZE="3">DirectDrawClipper</font><font
face="宋體" size="3">對象</a></li>
<li><a href="#獨立的DirectDrawClipper對象">獨立的</font><font FACE="Arial" SIZE="3">DirectDrawClipper</font><font
face="宋體" size="3">對象</a></li>
<li><a href="#用CoCreateInstance創(chuàng)建DirectDrawClipper對象">用</font><font FACE="Arial"
SIZE="3">CoCreateInstance</font><font face="宋體" size="3">創(chuàng)建</font><font
FACE="Arial" SIZE="3">DirectDrawClipper</font><font face="宋體" size="3">對象</a></li>
<li><a href="#對系統(tǒng)鼠標使用裁減器">對系統(tǒng)鼠標使用裁減器</a></li>
<li><a href="#對多窗口使用Clipper">對多窗口使用</font><font FACE="Arial"
SIZE="3">Clipper</font></a></li>
</ol>
</blockquote>
<hr>
<blockquote>
<font face="宋體" size="3"><b><font FACE="黑體"><p><a
name="什么是“裁減器(Clipper)”對象">什么是“裁減器(</font><font
FACE="Arial">Clipper</font><font FACE="黑體">)”對象</a></p>
</font></b></font><font size="4"><p align="right"></font><font face="宋體" size="3"><a
href="#目錄">返回目錄</a></font></p>
</blockquote>
<blockquote>
<font face="宋體" size="3"><p ALIGN="JUSTIFY">裁減器,或<font FACE="Arial" SIZE="3">DirectDrawClipper</font>對象,限定你的<font
FACE="Arial" SIZE="3">Blit</font>操作到一個指定的頁面區(qū)域。一個裁減器對象擁有一個或多個裁減清單。一個裁減清單是一個或一系列封閉的矩形,描述了頁面上的一個或一系列區(qū)域,只有在該區(qū)域內(nèi)才允許<font
FACE="Arial" SIZE="3">Blit</font>。這些區(qū)域是用<font FACE="Arial" SIZE="3">RECT</font>結構來描述的,按屏幕坐標。</p>
<p ALIGN="JUSTIFY">裁減清單是一個頗有價值的工具。它們最通常的作用是阻止你的應用程序在<font
FACE="Arial" SIZE="3">Blit</font>操作時,超出屏幕的邊界。舉例來說,想象一個子圖形從屏幕的一邊逐漸進入屏幕。你不會想讓你的子圖形是突然出現(xiàn)在屏幕上的;你想讓它從屏幕的邊上一點一點的出現(xiàn)。如果沒有裁減器對象,你應該需要在程序中加入一個邏輯判斷和運算,逐步修改<font
FACE="Arial" SIZE="3">Blit</font>操作的參數(shù),以保護那些超出屏幕邊緣的頁面內(nèi)存,如果沒有這些邏輯操作的話,你的應用程序會產(chǎn)生內(nèi)存訪問異常(<font
FACE="Arial" SIZE="3">memory access violations</font>)的錯誤。,</p>
<p ALIGN="JUSTIFY">下面的插圖展示了這種類型的裁減。</p>
<p ALIGN="JUSTIFY">你可以使用裁減器對象來指定目標頁面的特定區(qū)域為可寫的。<font
FACE="Arial" SIZE="3">DirectDraw</font>在這些區(qū)域中裁減<font FACE="Arial" SIZE="3">Blit</font>操作,以保護那些指定裁減矩形以外的區(qū)域不被改寫。</p>
<p ALIGN="JUSTIFY">下面的例圖展示了這種類型的裁減。</p>
</font><hr>
</blockquote>
<blockquote>
<font face="宋體" size="3"><b><p><a name="裁減清單">裁減清單</a></p>
</b></font><font size="4"><p align="right"></font><font face="宋體" size="3"><a
href="#目錄">返回目錄</a></font></p>
</blockquote>
<blockquote>
<font face="宋體" size="3"><font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDraw</font>用<font
FACE="Arial" SIZE="3">DirectDrawClipper</font>對象來管理裁剪表。一個裁剪表是描述頁面可見區(qū)域的一系列矩形。一個<font
FACE="Arial" SIZE="3">DirectDrawClipper</font>對象可以被依附于任何一個頁面。一個窗口句柄同樣也可以與一個<font
FACE="Arial" SIZE="3">DirectDrawClipper</font>對象相依附,在這種情況下,<font
FACE="Arial" SIZE="3">DirectDraw</font>更新窗口的<font FACE="Arial" SIZE="3">DirectDrawClipper</font>對象的裁減表。</p>
<p ALIGN="JUSTIFY">盡管在<font FACE="Arial" SIZE="3">DirectDraw HAL</font>看來,裁減表是可見的,但<font
FACE="Arial" SIZE="3">DirectDraw</font>調(diào)用<font FACE="Arial" SIZE="3">HAL</font>只用于符合裁剪表所需要的矩形區(qū)域。比如,如果一個頁面的右上方被裁減,并且應用程序指示<font
FACE="Arial" SIZE="3">DirectDraw</font>將這個頁面映射到主頁面(<font
FACE="Arial" SIZE="3">primary surface</font>)上,則<font FACE="Arial" SIZE="3">DirectDraw</font>將會使<font
FACE="Arial" SIZE="3">HAL</font>進行兩個映射,首先是頁面的左上角,其次是頁面的下部區(qū)域。</p>
<p ALIGN="JUSTIFY">通過<font FACE="Arial" SIZE="3">IDirectDrawClipper::SetClipList</font>函數(shù),你可以將整個裁減清單連接到裁減器上(如果設備支持該操作),而不是多次調(diào)用該函數(shù),每次連接裁減清單中的一個矩形。除此之外,通過調(diào)用<font
FACE="Arial" SIZE="3">IDirectDrawClipper::SetHWnd</font>函數(shù),并且指定一個窗口的句柄,你還可以將該窗口連接到裁減器上。如果你已經(jīng)讓裁減器使用一個窗口句柄,那么,你將不能給該裁減器再設置另外的矩形。</p>
<p ALIGN="JUSTIFY">覆蓋頁面的裁減只有在覆蓋硬件可以支持,并且目標關鍵色沒有被激活的情況下才能使用。</p>
</font><hr>
</blockquote>
<blockquote>
<font face="宋體" size="3"><b><font FACE="黑體"><p><a
name="共享DirectDrawClipper對象">共享</font><font FACE="Arial">DirectDrawClipper</font><font
FACE="黑體">對象</a></p>
</font></b></font><font size="4"><p align="right"></font><font face="宋體" size="3"><a
href="#目錄">返回目錄</a></font></p>
</blockquote>
<blockquote>
<font face="宋體" size="3"><font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DirectDrawClipper</font>對象可以被多個頁面所共享。例如,同一個<font
FACE="Arial" SIZE="3">DirectDrawClipper</font>對象可以被設置到一個換頁鏈的前臺緩存(<font
FACE="Arial" SIZE="3">front buffer</font>)和后臺緩存(<font FACE="Arial" SIZE="3">back
buffer</font>)上。當應用程序使用<font FACE="Arial" SIZE="3">IDirectDrawSurface3::SetClipper</font>,將一個<font
FACE="Arial" SIZE="3">DirectDrawClipper</font>對象依屬到一個頁面,則頁面將遞增該<font
FACE="Arial" SIZE="3">DirectDrawClipper</font>對象的引用記錄(<font FACE="Arial"
SIZE="3">reference count</font>)。當頁面的引用記錄達到<font FACE="Arial"
SIZE="3">0</font>時,頁面將遞減<font FACE="Arial" SIZE="3">DirectDrawClipper</font>對象的引用記錄。除此之外,如果調(diào)用<font
FACE="Arial" SIZE="3">IDirectDrawSurface3::SetClipper</font>,并使其裁減接口指針為<font
FACE="Arial" SIZE="3">NULL</font>,則<font FACE="Arial" SIZE="3">DirectDrawClipper</font>對象將從頁面上分離,其引用記錄也將遞減<font
FACE="Arial" SIZE="3">1</font>。</p>
<p ALIGN="JUSTIFY">注意:如果在同一頁面多次調(diào)用<font FACE="Arial" SIZE="3">IDirectDrawSurface3::SetClipper</font>以依屬同一個<font
FACE="Arial" SIZE="3">DirectDrawClipper</font>對象,則它的引用記錄只會遞增一次。以后的調(diào)用不會影響到該對象的引用記錄。</p>
</font><hr>
</blockquote>
<blockquote>
<font face="宋體" size="3"><b><font FACE="黑體"><p><a
name="獨立的DirectDrawClipper對象">獨立的</font><font FACE="Arial">DirectDrawClipper</font><font
FACE="黑體">對象</a></p>
</font></b></font><font size="4"><p align="right"></font><font face="宋體" size="3"><a
href="#目錄">返回目錄</a></font></p>
</blockquote>
<blockquote>
<font face="宋體" size="3"><p ALIGN="JUSTIFY">你可以創(chuàng)建不直接屬于任何特定<font
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -