?? displaymode.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>
<p align="right" style="margin-top: -10; margin-bottom: -8"><a href="index.htm"
style="text-decoration: none"><font face="宋體"><span style="text-decoration: none">返回上級</span></font></a></p>
<hr style="margin-top: -8px">
<blockquote>
<font FACE="宋體" SIZE="3"><ol>
<li><a href="#關于顯示模式">關于顯示模式</a></li>
<li><a href="#測定支持的顯示模式">測定支持的顯示模式</a></li>
<li><a href="#設置顯示模式">設置顯示模式</a></li>
<li><a href="#還原顯示模式">恢復顯示模式</a></li>
<font FACE="Arial" SIZE="3">
<li><a href="#ModeX與Mode 13顯示模式">Mode X</font>和<font FACE="Arial" SIZE="3">Mode
13</font>顯示模式</a></li>
<li><a href="#對高分辨率和真彩色的支持">對高分辨率和真彩色的支持</a></li>
</ol>
</font>
</blockquote>
<font FACE="宋體" SIZE="3">
<hr>
<blockquote>
<b><font FACE="黑體"><p></font></font><font SIZE="3"><a name="關于顯示模式"><font
face="宋體">關于顯示模式</font></a></p>
</b><p align="right"><a href="#目錄"><font face="宋體">返回目錄</font></a></p>
<p ALIGN="JUSTIFY"></font><font FACE="宋體" SIZE="3">顯示模式指的是顯示器的當前設置,描述了顯示器的分辨率和位深度,這個信息通常是由顯示硬件從主頁面傳遞給顯示器的。顯示模式是由三個特征定義的:寬、高、位深度。例如,大多數的顯示器可以顯示寬為<font
FACE="Arial" SIZE="3">640</font>像素、高為<font FACE="Arial" SIZE="3">480</font>像素的圖象,每一個像素的位深度是<font
FACE="Arial" SIZE="3">8</font>。通常我們把這個顯示模式稱作<font FACE="Arial"
SIZE="3">640x480x8</font>。隨著顯示模式的尺寸和位深度的增加,它所需要的視頻<font
FACE="Arial" SIZE="3">RAM</font>也隨之增加。</p>
<p ALIGN="JUSTIFY">有兩種顯示模式:調色板式和非調色板式。對于調色板式顯示模式來說,每一個像素的顏色值是以一個相關調色板的索引值來代表。顯示模式的位深度決定了調色板中可容納的顏色數量。舉例來說,在<font
FACE="Arial" SIZE="3">8</font>位的調色板顯示模式中,每一個像素的值從<font
FACE="Arial" SIZE="3">0</font>到<font FACE="Arial" SIZE="3">255</font>,該調色板可容納<font
FACE="Arial" SIZE="3">256</font>個顏色入口。</p>
<p ALIGN="JUSTIFY">非調色板式顯示模式,就象它的名稱所表示的那樣,不需要使用調色板。在這種顯示模式下,像素的位深度為<font
FACE="Arial" SIZE="3">16</font>、<font FACE="Arial" SIZE="3">24</font>或<font
FACE="Arial" SIZE="3">32</font>,每個像素分別占用<font FACE="Arial" SIZE="3">2</font>字節、<font
FACE="Arial" SIZE="3">3</font>字節或<font FACE="Arial" SIZE="3">4</font>字節,用來描述像素的真實顏色。</p>
<p ALIGN="JUSTIFY">主頁面、以及在換頁鏈中的所有頁面必須符合顯示模式的尺寸,位深度和像素格式(請參閱“像素格式”)。</p>
<hr>
<b><font FACE="黑體"><p></font><a name="測定支持的顯示模式">測定支持的顯示模式</a><font
FACE="黑體"></p>
</font></b><font SIZE="3"><p align="right"><a href="#目錄"><font face="宋體">返回目錄</font></a></p>
</font><p ALIGN="JUSTIFY">因為顯示硬件(包括顯示卡和顯示器)的不同,不是所有的顯示設備都支持所有的顯示模式。要測定某系統所支持的顯示模式,應該調用<font
FACE="Arial" SIZE="3">IDirectDraw2::EnumDisplayModes</font>函數。設置正確的參數和標志符,<font
FACE="Arial" SIZE="3">IDirectDraw2::EnumDisplayModes</font>可以列舉出該系統所支持的所有的顯示模式,或判斷是否支持用戶所指定的顯示模式。該函數的第一個參數,<font
FACE="Arial" SIZE="3">dwFlags</font>,控制該函數的額外選項,在大多數情況下,你應該設置<font
FACE="Arial" SIZE="3">dwFlags</font>為<font FACE="Arial" SIZE="3">0</font>以表明忽略額外的選項。第二個參數,<font
FACE="Arial" SIZE="3">lpDDSurfaceDesc</font>,是一個<font FACE="Arial" SIZE="3">DDSURFACEDESC</font>結構的地址,包含了要被測定的顯示模式信息,通常,該參數被設為<font
FACE="Arial" SIZE="3">NULL</font>,以列舉出該系統所支持的所有顯示模式。第三個參數,<font
FACE="Arial" SIZE="3">lpContext</font>,是你想讓<font FACE="Arial" SIZE="3">DirectDraw</font>傳遞給其回調函數的一個指針,如果在回調函數中不需要任何數據,給該參數值為<font
FACE="Arial" SIZE="3">NULL</font>。最后一個參數,<font FACE="Arial" SIZE="3">lpEnumModesCallback</font>,一個應用程序定義的回調函數的地址,在<font
FACE="Arial" SIZE="3">DirectDraw</font>每列舉出一個顯示模式的時候,該回調函數將被調用。</p>
<p ALIGN="JUSTIFY">在調用<font FACE="Arial" SIZE="3">IDirectDraw2::EnumDisplayModes</font>時所提供的回調函數必須符合<font
FACE="Arial" SIZE="3">EnumModesCallback</font>函數的原型。每當找到一個硬件所支持的顯示模式的時候,<font
FACE="Arial" SIZE="3">DirectDraw</font>調用該回調函數,并且傳遞了兩個參數。第一個參數是一個<font
FACE="Arial" SIZE="3">DDSURFACEDESC</font>結構的地址,包含了一個支持的顯示模式的描述。第二個參數是一個應用程序定義的數據的地址,是在調用<font
FACE="Arial" SIZE="3">IDirectDraw2::EnumDisplayModes</font>時所指定的第三個參數。</p>
<p ALIGN="JUSTIFY">檢查<font FACE="Arial" SIZE="3">DDSURFACEDESC</font>結構中的值以獲得它所描述的顯示模式,關鍵的成員是<font
FACE="Arial" SIZE="3">dwWidth</font>、<font FACE="Arial" SIZE="3">dwHeight</font>、和<font
FACE="Arial" SIZE="3">ddpfPixelFormat</font>。<font FACE="Arial" SIZE="3">dwWidth</font>和<font
FACE="Arial" SIZE="3">dwHeight</font>成員代表了顯示模式的長和寬,<font
FACE="Arial" SIZE="3">ddpfPixelFormat</font>成員是一個<font FACE="Arial" SIZE="3">DDPIXELFORMAT</font>結構的地址,它包含了顯示模式的位深度信息。</p>
<font FACE="Arial" SIZE="3"><p ALIGN="JUSTIFY">DDPIXELFORMAT</font>結構不僅包含了顯示模式的位深度,還可以告訴你該顯示模式是否使用調色板,以及像素格式。如果<font
FACE="Arial" SIZE="3">dwFlags</font>成員包含了<font FACE="Arial" SIZE="3">PALETTEINDEXED1</font>、<font
FACE="Arial" SIZE="3">DDPF_PALETTEINDEXED2</font>、<font FACE="Arial" SIZE="3">DDPF_PALETTEINDEXED4</font>、或<font
FACE="Arial" SIZE="3">DDPF_PALETTEINDEXED8</font>標志,顯示模式的位深度為<font
FACE="Arial" SIZE="3">1</font>、<font FACE="Arial" SIZE="3">2</font>、<font FACE="Arial"
SIZE="3">4</font>或<font FACE="Arial" SIZE="3">8</font>,并且每個像素是一個相關調色板的索引。如果<font
FACE="Arial" SIZE="3">dwFlags</font>成員包含了<font FACE="Arial" SIZE="3">DDPF_RGB</font>標志,那么該顯示模式是非調色板式的,并且它的位深度由<font
FACE="Arial" SIZE="3">DDPIXELFORMAT </font>結構中的<font FACE="Arial" SIZE="3">dwRGBBitCount</font>成員所提供。</p>
<hr>
<b><font FACE="黑體"><p></font><a name="設置顯示模式">設置顯示模式</a><font
FACE="黑體"></p>
</font></b><font SIZE="3"><p align="right"><a href="#目錄"><font face="宋體">返回目錄</font></a></p>
</font><p ALIGN="JUSTIFY">你可以用<font FACE="Arial" SIZE="3">IDirectDraw2::SetDisplayMode</font>來設置顯示器的顯示模式。該函數的前四個參數用來描述要設置的顯示模式的尺寸、位深度以及顯示器的刷新率。函數的第五個參數是用來指定額外的選項,目前,唯一可用的標志是<font
FACE="Arial" SIZE="3">DDSDM_STANDARDVGAMODE</font>,它將使顯示模式被設為<font
FACE="Arial" SIZE="3">Mode 13</font>,而不是<font FACE="Arial" SIZE="3">Mode X
320x200x8</font>。如果你要設置另一種分辨率,位深度或<font FACE="Arial"
SIZE="3">Mode X</font>模式,不要使用這個參數,并且將其設為<font
FACE="Arial" SIZE="3">0</p>
</font><p ALIGN="JUSTIFY">盡管你可以指定所需要的顯示模式的位深度,但是你不能指定顯示硬件的像素格式。要測定顯示硬件用于該位深度的<font
FACE="Arial" SIZE="3">RGB</font>位掩碼,在設置好顯示模式之后,調用<font
FACE="Arial" SIZE="3">IDirectDraw2::GetDisplayMode</font>。如果當前的顯示模式不是基于調色板的,你可以從<font
FACE="Arial" SIZE="3">dwRBitMask</font>、<font FACE="Arial" SIZE="3">dwGBitMask</font>和<font
FACE="Arial" SIZE="3">dwBBitMask</font>中獲得掩碼值。</p>
<p ALIGN="JUSTIFY">要正確的測定<font FACE="Arial" SIZE="3">red</font>、<font
FACE="Arial" SIZE="3">green</font>和<font FACE="Arial" SIZE="3">blue</font>的所在的位,請參閱“<font
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -