📄 subject_31715.htm
字号:
<p>
序号:31715 发表者:峰凛 发表日期:2003-03-06 13:59:31
<br>主题:关于宏定义
<br>内容:有这样一个宏定义:#define IS_WIN30_DIB(lpbi) <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> DWORD biSize; //记录该结构体的大小<BR> LONG biWidth; <BR> LONG biHeight; <BR> WORD biPlanes; <BR> WORD biBitCount <BR> DWORD biCompression; <BR> DWORD biSizeImage; <BR> LONG biXPelsPerMeter; <BR> LONG biYPelsPerMeter; <BR> DWORD biClrUsed; <BR> DWORD 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 结构. 基于 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> DWORD bV4Size;<BR> LONG bV4Width;<BR> LONG bV4Height;<BR> WORD bV4Planes;<BR> WORD bV4BitCount;<BR> DWORD bV4V4Compression;<BR> DWORD bV4SizeImage;<BR> LONG bV4XPelsPerMeter;<BR> LONG bV4YPelsPerMeter;<BR> DWORD bV4ClrUsed;<BR> DWORD bV4ClrImportant;<BR> DWORD bV4RedMask;<BR> DWORD bV4GreenMask;<BR> DWORD bV4BlueMask;<BR> DWORD bV4AlphaMask;<BR> DWORD bV4CSType;<BR> CIEXYZTRIPLE bV4Endpoints;<BR> DWORD bV4GammaRed;<BR> DWORD bV4GammaGreen;<BR> DWORD bV4GammaBlue;<BR>} BITMAPV4HEADER<BR><BR><BR>typedef struct { <BR> DWORD bV5Size; <BR> LONG bV5Width; <BR> LONG bV5Height; <BR> WORD bV5Planes; <BR> WORD bV5BitCount; <BR> DWORD bV5Compression; <BR> DWORD bV5SizeImage; <BR> LONG bV5XPelsPerMeter; <BR> LONG bV5YPelsPerMeter; <BR> DWORD bV5ClrUsed; <BR> DWORD bV5ClrImportant; <BR> DWORD bV5RedMask; <BR> DWORD bV5GreenMask; <BR> DWORD bV5BlueMask; <BR> DWORD bV5AlphaMask; <BR> DWORD bV5CSType; <BR> CIEXYZTRIPLE bV5Endpoints; <BR> DWORD bV5GammaRed; <BR> DWORD bV5GammaGreen; <BR> DWORD bV5GammaBlue; <BR> DWORD bV5Intent; <BR> DWORD bV5ProfileData; <BR> DWORD bV5ProfileSize; <BR> DWORD 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 + -