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

📄 subject_31715.htm

📁 vc
💻 HTM
字号:
<p>
序号:31715 发表者:峰凛 发表日期:2003-03-06 13:59:31
<br>主题:关于宏定义
<br>内容:有这样一个宏定义:#define IS_WIN30_DIB(lpbi)&nbsp;&nbsp;<BR>((*(LPDWORD)(lpbi)) == sizeof(BITMAPINFOHEADER))<BR>那么这条语句:if (IS_WIN30_DIB(lpbi))执行成功与否是判断什么东西呢?<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:jimware 回复日期:2003-03-06 17:22:10
<br>内容:分析: <BR>lpbi = long ptr to bitmap info<BR>BITMAPINFOHEADER 是一个位图信息头部数据的结构体(STRUCTURE),定义为:<BR>typedef struct tagBITMAPINFOHEADER{ // bmih <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;biSize; //记录该结构体的大小<BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;&nbsp; biWidth; <BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;&nbsp; biHeight; <BR>&nbsp;&nbsp;&nbsp;&nbsp;WORD&nbsp;&nbsp; biPlanes; <BR>&nbsp;&nbsp;&nbsp;&nbsp;WORD&nbsp;&nbsp; biBitCount <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;biCompression; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;biSizeImage; <BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;&nbsp; biXPelsPerMeter; <BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;&nbsp; biYPelsPerMeter; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;biClrUsed; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;biClrImportant; <BR>} BITMAPINFOHEADER; <BR><BR>IS_WIN30_DIB = 是不是WIN30的DIB(Device-Independent-Bitmap)<BR>结论:<BR>将lpbi指向的DWORD数据与BITMAPINFOHEADER结构体的大小(Size)相比较,以<BR>判断 lpbi 指向的数据是不是 Win30 的 DIB( 设备无关的位图)格式
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:峰凛 回复日期:2003-03-07 09:30:10
<br>内容:那请问jimware:win30应该就是win3.0,那么是不是win3.0的BITMAPINFOHEADER和win32的大小不同,而win3.0的BITMAPINFOHEADER大小是多少呢??
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:jimware 回复日期:2003-03-07 15:54:40
<br>内容:这个WIN30确实是指Windows 3.0 时代的操作系统;<BR>开发基于Windows NT 4.0 和 Windows 95 的应用程序应该使用 BITMAPV4HEADER 结构.&nbsp;&nbsp;基于 Windows NT 5.0 (Windows 2000) 和 Windows 98 应该使用 BITMAPV5HEADER 结构. <BR>下面是 第四版本 和 第五版本 BITMAPINFOHEADER 的定义。<BR>所有这些知识都可以在 Visual Studio 随光盘的MSDN Library 文档中找到,不知你安装了MSDN Library Visual Studio 没有?<BR><BR>typedef struct {<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV4Size;<BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bV4Width;<BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bV4Height;<BR>&nbsp;&nbsp;&nbsp;&nbsp;WORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bV4Planes;<BR>&nbsp;&nbsp;&nbsp;&nbsp;WORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bV4BitCount;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV4V4Compression;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV4SizeImage;<BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bV4XPelsPerMeter;<BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bV4YPelsPerMeter;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV4ClrUsed;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV4ClrImportant;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV4RedMask;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV4GreenMask;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV4BlueMask;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV4AlphaMask;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV4CSType;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CIEXYZTRIPLE bV4Endpoints;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV4GammaRed;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV4GammaGreen;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV4GammaBlue;<BR>} BITMAPV4HEADER<BR><BR><BR>typedef struct { <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5Size; <BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bV5Width; <BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bV5Height; <BR>&nbsp;&nbsp;&nbsp;&nbsp;WORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bV5Planes; <BR>&nbsp;&nbsp;&nbsp;&nbsp;WORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bV5BitCount; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5Compression; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5SizeImage; <BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bV5XPelsPerMeter; <BR>&nbsp;&nbsp;&nbsp;&nbsp;LONG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bV5YPelsPerMeter; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5ClrUsed; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5ClrImportant; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5RedMask; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5GreenMask; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5BlueMask; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5AlphaMask; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5CSType; <BR>&nbsp;&nbsp;&nbsp;&nbsp;CIEXYZTRIPLE bV5Endpoints; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5GammaRed; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5GammaGreen; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5GammaBlue; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5Intent; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5ProfileData; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5ProfileSize; <BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bV5Reserved; <BR>} BITMAPV5HEADER
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:峰凛 回复日期:2003-03-11 10:42:03
<br>内容:谢谢jimware,我msdn是装了,我以前都是用的是老的,没用过新的,今天总算是懂了!不过我看到的程序没有用BITMAPV5HEADER 和BITMAPV4HEADER 结构的,真是奇怪??
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:jimware 回复日期:2003-03-11 17:25:37
<br>内容:我在网上找到过 V4 V5的格式的代码,但是我没用过这些格式
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

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