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

📄 ddraw.htm

📁 DirectX 编程初级教程中文版。只要有C++基础和一点三维知识即可。
💻 HTM
📖 第 1 页 / 共 5 页
字号:
    face="Arial">DirectDrawSurface</font>对象,并且在<font face="Arial">IDirectDrawSurface3::Blt</font>、<font
    face="Arial">IDirectDrawSurface3::BltBatch</font>、和<font face="Arial">IDirectDrawSurface3::UpdateOverlay</font>过程中使用。要创建一个不隶属于任何<font
    face="Arial">DirectDraw</font>对象的<font face="Arial">DirectDrawClipper</font>对象,使用<font
    face="Arial">DirectDrawCreateClipper</font>函数。</p>
    <b><p>快速信息:</p>
    </b><p><font face="Arial">Windows NT</font>:适用于<font face="Arial">4.0</font>或更新版<br>
    <font face="Arial">Windows</font>:适用于<font face="Arial">Windows 95</font>或更新版<br>
    <font face="Arial">Windows CE</font>:不支持<br>
    头文件:<font face="Arial">ddraw.h</font><br>
    库文件:<font face="Arial">ddraw.lib</font></p>
    <b><p>请参阅:</p>
    </b><p><font face="Arial">IDirectDrawSurface3::GetClipper</font>,<font face="Arial">IDirectDrawSurface3::SetClipper</font></p>
    </font><hr>
    <font SIZE="3" COLOR="#0000ff"><b>
    <li><font face="Arial"><a name="IDirectDraw2::CreatePalette">IDirectDraw2::CreatePalette</a></font></li>
    </b></font><font SIZE="3"><p align="right"></font><font color="#FF0000" SIZE="3"><span
    style="color: rgb(255,0,0)"><a href="#目录">回到目录</a></span></font><font SIZE="3"></p>
    <p>为该<font face="Arial">DirectDraw</font>对象创建一个<font face="Arial">DirectDrawPalette 
    </font>对象。</p>
    <p><font face="Arial">HRESULT CreatePalette(<br>
    DWORD dwFlags, <br>
    LPPALETTEENTRY lpColorTable, <br>
    LPDIRECTDRAWPALETTE FAR *lplpDDPalette, <br>
    IUnknown FAR *pUnkOuter <br>
    );</font></p>
    <b><p>参数:</p>
    </b><p><font face="Arial">dwFlags</font><br>
    &nbsp;&nbsp; 下列标志的单个或组合:</p>
    <p><font face="Arial">&nbsp;&nbsp;&nbsp; DDPCAPS_1BIT</font><br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 指定调色板索引为<font face="Arial">1</font>比特。色彩表中只有两个入口。 
    </p>
    <p><font face="Arial">&nbsp;&nbsp;&nbsp; DDPCAPS_2BIT</font><br>
    &nbsp;&nbsp; &nbsp;&nbsp; 指定调色板索引为<font face="Arial">2</font>比特。色彩表中有四个入口。 
    </p>
    <p><font face="Arial">&nbsp;&nbsp;&nbsp; DDPCAPS_4BIT</font><br>
    &nbsp;&nbsp; &nbsp;&nbsp; 指定调色板索引为<font face="Arial">4</font>比特。色彩表中有<font
    face="Arial">16</font>个入口。</p>
    <p><font face="Arial">&nbsp;&nbsp; DDPCAPS_8BIT </font><br>
    &nbsp;&nbsp; &nbsp;&nbsp; 指定调色板索引为<font face="Arial">8</font>比特。色彩表中有<font
    face="Arial">256</font>个入口。 </p>
    <p><font face="Arial">&nbsp;&nbsp;&nbsp; DDPCAPS_8BITENTRIES </font><br>
    &nbsp;&nbsp; &nbsp;&nbsp; 表明调色板的索引值是另外一个<font face="Arial">8</font>位调色板的索引。这个标志只有和<font
    face="Arial">DDPCAPS_1BIT</font>、<font face="Arial">DDPCAPS_2BIT</font>、或<font
    face="Arial">DDPCAPS_4BIT</font>标志一起使用才能生效,并且目标页面必须是<font
    face="Arial">8 bbp</font>(<font face="Arial">8</font>位色彩模式)。每一个色彩入口为<font
    face="Arial">1</font>字节,并且指向目标页面的<font face="Arial">8 bbp</font>调色板。</p>
    <p><font face="Arial">&nbsp;&nbsp;&nbsp; DDPCAPS_ALLOW256</font><br>
    &nbsp;&nbsp; &nbsp;&nbsp; 表明用户可以定义调色板的所有<font face="Arial">256</font>个入口。</p>
    <p><font face="Arial">lpColorTable<br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2</font>、<font face="Arial">4</font>、<font
    face="Arial">16</font>或<font face="Arial">256</font>个<font face="Arial">PALETTEENTRY</font>结构序列的地址,用来初始化这个<font
    face="Arial">DirectDrawPalette</font>对象。</p>
    <p><font face="Arial">lplpDDPalette</font><br>
    &nbsp;&nbsp; 如果函数调用成功,这个参数将接收到指向新创建的<font
    face="Arial">DirectDrawPalette</font>对象的指针的地址。</p>
    <p><font face="Arial">pUnkOuter</font><br>
    &nbsp;&nbsp; 该参数将允许与今后的<font face="Arial">COM</font>集合特性相兼容。目前,只要这个参数不是<font
    face="Arial">NULL</font>,<font face="Arial">IDirectDraw2::CreateSurface</font>返回一个错误。 
    </p>
    <b><p>返回值:</p>
    </b><p>如果函数调用成功,返回<font face="Arial">DD_OK</font>。<br>
    如果函数调用失败,返回值可能是下列错误值之一:</p>
    <p><font face="Arial">DDERR_INVALIDOBJECT <br>
    DDERR_INVALIDPARAMS <br>
    DDERR_NOCOOPERATIVELEVELSET <br>
    DDERR_OUTOFMEMORY <br>
    DDERR_UNSUPPORTED </font></p>
    <p><b>快速信息:</b></p>
    <p><font face="Arial">Windows NT</font>:适用于<font face="Arial">4.0</font>或更新版<br>
    <font face="Arial">Windows</font>:适用于<font face="Arial">Windows 95</font>或更新版<br>
    <font face="Arial">Windows CE</font>:不支持<br>
    头文件:<font face="Arial">ddraw.h</font><br>
    库文件:<font face="Arial">ddraw.lib</font></p>
    </font><hr>
    <font SIZE="3" COLOR="#0000ff"><b>
    <li><font face="Arial"><a name="IDirectDraw2::CreateSurface">IDirectDraw2::CreateSurface</a></font></li>
    </b></font><font SIZE="3"><p align="right"></font><font color="#FF0000" SIZE="3"><span
    style="color: rgb(255,0,0)"><a href="#目录">回到目录</a></span></font><font SIZE="3"></p>
    <p>该函数为该<font face="Arial">DirectDraw</font>对象创建一个<font face="Arial">DirectDrawSurface</font>对象。</p>
    <p><font face="Arial">HRESULT CreateSurface(</font></p>
    <p><font face="Arial">LPDDSURFACEDESC lpDDSurfaceDesc, </font></p>
    <p><font face="Arial">LPDIRECTDRAWSURFACE FAR *lplpDDSurface, </font></p>
    <p><font face="Arial">IUnknown FAR *pUnkOuter </font></p>
    <p><font face="Arial">);</font></p>
    <b><p>参数:</p>
    </b><p><font face="Arial">lpDDSurfaceDesc</font></p>
    <p>一个<font face="Arial">DDSURFACEDESC</font>结构的地址,用来描述所请求创建的页面的页面信息。在调用这个函数之前,你应该设置<font
    face="Arial">DDSURFACEDESC</font>结构所有成员的值为<font face="Arial">0</font>。<font
    face="Arial">DDSCAPS</font>结构是<font face="Arial">DDSURFACEDESC</font>的一个成员。</p>
    <p><font face="Arial">lplpDDSurface</font></p>
    <p>如果该函数调用成功,该参数将接收到指向新创建的<font face="Arial">DirectDrawsurface</font>对象的指针的地址。 
    </p>
    <p><font face="Arial">pUnkOuter</font></p>
    <p>该参数将允许与今后的<font face="Arial">COM</font>集合特性相兼容。目前,只要这个参数不是<font
    face="Arial">NULL</font>,<font face="Arial">IDirectDraw2::CreateSurface</font>返回一个错误。 
    </p>
    <b><p>返回值:</p>
    </b><p>如果函数调用成功,返回<font face="Arial">DD_OK</font>。</p>
    <p>如果函数调用失败,返回值可能是下列错误值之一:</p>
    <p><font face="Arial">DDERR_INCOMPATIBLEPRIMARY </font></p>
    <p><font face="Arial">DDERR_INVALIDCAPS </font></p>
    <p><font face="Arial">DDERR_INVALIDOBJECT </font></p>
    <p><font face="Arial">DDERR_INVALIDPARAMS </font></p>
    <p><font face="Arial">DDERR_INVALIDPIXELFORMAT </font></p>
    <p><font face="Arial">DDERR_NOALPHAHW </font></p>
    <p><font face="Arial">DDERR_NOCOOPERATIVELEVELSET </font></p>
    <p><font face="Arial">DDERR_NODIRECTDRAWHW </font></p>
    <p><font face="Arial">DDERR_NOEMULATION </font></p>
    <p><font face="Arial">DDERR_NOEXCLUSIVEMODE </font></p>
    <p><font face="Arial">DDERR_NOFLIPHW </font></p>
    <p><font face="Arial">DDERR_NOMIPMAPHW </font></p>
    <p><font face="Arial">DDERR_NOOVERLAYHW </font></p>
    <p><font face="Arial">DDERR_NOZBUFFERHW </font></p>
    <p><font face="Arial">DDERR_OUTOFMEMORY </font></p>
    <p><font face="Arial">DDERR_OUTOFVIDEOMEMORY </font></p>
    <p><font face="Arial">DDERR_PRIMARYSURFACEALREADYEXISTS </font></p>
    <p><font face="Arial">DDERR_UNSUPPORTEDMODE </font></p>
    <b><p>快速信息:</p>
    </b><p><font face="Arial">Windows NT</font>:适用于<font face="Arial">4.0</font>或更新版</p>
    <p><font face="Arial">Windows</font>:适用于<font face="Arial">Windows 95</font>或更新版</p>
    <p><font face="Arial">Windows CE</font>:不支持</p>
    <p>头文件:<font face="Arial">ddraw.h</font></p>
    <p>库文件:<font face="Arial">ddraw.lib</font></p>
    </font><hr>
    <font SIZE="3" COLOR="#0000ff"><b>
    <li><font face="Arial"><a name="IDirectDraw2::DuplicateSurface">IDirectDraw2::DuplicateSurface</a></font></li>
    </b></font><font SIZE="3"><p align="right"></font><font color="#FF0000" SIZE="3"><span
    style="color: rgb(255,0,0)"><a href="#目录">回到目录</a></span></font><font SIZE="3"></p>
    <p>复制一个<font face="Arial">DirectDrawSurface</font>对象。</p>
    <p><font face="Arial">HRESULT DuplicateSurface(</font></p>
    <p><font face="Arial">LPDIRECTDRAWSURFACE lpDDSurface, </font></p>
    <p><font face="Arial">LPLPDIRECTDRAWSURFACE FAR *lplpDupDDSurface </font></p>
    <p><font face="Arial">);</font></p>
    <b><p>参数:</p>
    </b><p><font face="Arial">lpDDSurface</font></p>
    <p>将要被复制的<font face="Arial">DirectDrawSurface</font>对象的地址。</p>
    <p><font face="Arial">lplpDupDDSurface</font></p>
    <p>如果该函数调用成功,该参数将接收到指向新创建的<font face="Arial">DirectDrawsurface</font>对象的指针的地址。 
    </p>
    <b><p>返回值:</p>
    </b><p>如果函数调用成功,返回<font face="Arial">DD_OK</font>。</p>
    <p>如果函数调用失败,返回值可能是下列错误值之一:</p>
    <p><font face="Arial">DDERR_CANTDUPLICATE </font></p>
    <p><font face="Arial">DDERR_INVALIDOBJECT </font></p>
    <p><font face="Arial">DDERR_INVALIDPARAMS </font></p>
    <p><font face="Arial">DDERR_OUTOFMEMORY </font></p>
    <p><font face="Arial">DDERR_SURFACELOST </font></p>
    <b><p>备注:</p>
    </b><p>这个函数创建一个新的<font face="Arial">DirectDrawSurface</font>对象,与一个已存在的<font
    face="Arial">DirectDrawSurface</font>对象指向同一个页面内存区。这个复制品可以象原始对象一样使用。该页面内存在最后一个引用它的对象被释放之后被释放。主页面,<font
    face="Arial">3-D</font>页面,或隐性页面不能被复制。</p>
    <b><p>快速信息:</p>
    </b><p><font face="Arial">Windows NT</font>:适用于<font face="Arial">4.0</font>或更新版</p>
    <p><font face="Arial">Windows</font>:适用于<font face="Arial">Windows 95</font>或更新版</p>
    <p><font face="Arial">Windows CE</font>:不支持</p>
    <p>头文件:<font face="Arial">ddraw.h</font></p>
    <p>库文件:<font face="Arial">ddraw.lib</font></p>
    </font><hr>
    <font SIZE="3" COLOR="#0000ff"><b>
    <li><font face="Arial"><a name="IDirectDraw2::EnumDisplayModes">IDirectDraw2::EnumDisplayModes</a></font></li>
    </b></font><font SIZE="3"><p align="right"></font><font color="#FF0000" SIZE="3"><span
    style="color: rgb(255,0,0)"><a href="#目录">回到目录</a></span></font><font SIZE="3"></p>
    <p>该函数列举出暴露于<font face="Arial">DirectDraw</font>对象的与所提供的页面描述相兼容的所有显示模式。</p>
    <p><font face="Arial">HRESULT EnumDisplayModes(</font></p>
    <p><font face="Arial">DWORD dwFlags, </font></p>
    <p><font face="Arial">LPDDSURFACEDESC lpDDSurfaceDesc, </font></p>
    <p><font face="Arial">LPVOID lpContext, </font></p>
    <p><font face="Arial">LPDDENUMMODESCALLBACK lpEnumModesCallback </font></p>
    <p><font face="Arial">);</font></p>
    <b><p>参数:</p>
    </b><p><font face="Arial">dwFlags </font></p>
    <p><font face="Arial">DDEDM_REFRESHRATES </font></p>
    <p>列举不同刷新率的显示模式。因为<font face="Arial">IDirectDraw2::EnumDisplayModes</font>保证每一种模式只被列举一次,这个标志指定是否将刷新率也考虑在内。 
    </p>
    <p><font face="Arial">DDEDM_STANDARDVGAMODES</font></p>
    <p>除了<font face="Arial">320x200x8 Mode X </font>模式之外,还列举出<font
    face="Arial">Mode 13</font>模式。</p>
    <p><font face="Arial">lpDDSurfaceDesc</font></p>
    <p>指向一个<font face="Arial">DDSURFACEDESC</font>结构的地址,被用来判断其是否存在于系统所支持的显示模式中。如果该参数为<font
    face="Arial">NULL</font>,则所有的模式将被列举。</p>
    <p><font face="Arial">lpContext</font></p>
    <p>一个应用程序定义的结构的地址,用来传递给<font face="Arial">lpEnumModesCallback</font>参数所指定的列举回调函数。</p>
    <p><font face="Arial">lpEnumModesCallback</font></p>
    <p><font face="Arial">EnumModesCallback</font>回调函数的地址,每列举出一个显示模式的时候,该函数将被执行一次。 
    </p>
    <b><p>返回值:</p>
    </b><p>如果函数调用成功,返回<font face="Arial">DD_OK</font>。</p>
    <p>如果函数调用失败,返回值可能是下列错误值之一:</p>
    <p><font face="Arial">DDERR_INVALIDOBJECT </font></p>
    <p><font face="Arial">DDERR_INVALIDPARAMS </font></p>
    <b><p>备注:</p>
    </b><p><font face="Arial">IDirectDraw2</font>接口的这个方法可以列举出不同显示模式的刷新率;而老版本的<font
    face="Arial">IDirectDraw::EnumDisplayModes</font>却无法提供这个功能。如果你用<font
    face="Arial">IDirectDraw2::SetDisplayMode</font>来设置某个显示模式的刷新率,你必须先用<font
    face="Arial">IDirectDraw2::EnumDisplayModes</font>来列举出<font face="Arial">dwRefreshRate</font>成员(存在于<font
    face="Arial">EnumModesCallback</font>回调函数中的<font face="Arial">DDSURFACEDESC</font>结构中)。</p>
    <b><p>快速信息:</p>
    </b><p><font face="Arial">Windows NT</font>:适用于<font face="Arial">4.0</font>或更新版</p>

⌨️ 快捷键说明

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