HBITMAP是什么结构?

是干啥的?在哪个头文件里定义的?有人说可以去看MSDN,可是到哪里去看MSDN?怎么看?这个问题我昨天提出后几分钟就明白HBITMAP是句柄不是结构了,因此问题的重心就从... 是干啥的?
在哪个头文件里定义的?
有人说可以去看MSDN,可是到哪里去看MSDN?怎么看?
这个问题我昨天提出后几分钟就明白HBITMAP是句柄不是结构了,因此问题的重心就从HBITMAP转为MSDN。
但是MSDN的问题比较繁琐,认真回答的人要付出很多时间,因此必须大幅度提高悬赏。
我过去悬赏一向很慷慨,毕竟我有4万多分。过去悬赏200分是很常见的。但是去年开始老是有很多问题发不上去,悬赏的分也跟着白白消失。因此我只有等看到我的问题在“待完善问题”出新以后才提高悬赏,因此去年以来就几乎没有200分以上的题了。
昨天来提高悬赏,却意外发现刚才还在“待完善问题”列表中的问题消失了。因此特地去投诉,这当然不会有结果。因此我还特地到百度提问。后来知道了有个“置顶卡”。用了置顶卡以后我这个帖子重新出现,因此我今天特来提高悬赏。
展开
 我来答
reverse_walker
推荐于2017-09-04 · TA获得超过590个赞
知道小有建树答主
回答量:377
采纳率:0%
帮助的人:465万
展开全部
MSDN只笼统一句话告诉你HBITMAP是HANDLE类型.要了解内部细节,你还得自己看SDK文件.
查看你的WinDef.h文件
-------------------------------------------------------------------------------------------------
#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
---------------------------------------------------------------------------------------------------------

如果定义了STRICT,那么HBITMAP类型就等于 HBITMAP__{}结构, HBITMAP同时也是HBITMAP__类型的指针.
如果没有定义STRICT, HBITMAP = HANDLE类型, HANDLE = PVOID类型.PVOID = void*类型
所以HBITMAP就等于void*类型.

要查看HBITMAP是个结构还是void*类型很简单(定义了trict,就是结构类型,否则void*)
你用void* p = static_cast<void*>( HBITMAP句柄).如果可以转换,HBITMAP就是void*.不行的话说明是结构类型.你必须用reinterpret_cast<>来转换.当然用C转换也行.
更多追问追答
追问
“笼统一句话”在哪里?
追答
HBITMAP
A handle to a bitmap.
This type is declared in WinDef.h as follows:
typedef HANDLE HBITMAP;

http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx
华夏联盟_可爱
2012-07-09 · TA获得超过816个赞
知道小有建树答主
回答量:821
采纳率:0%
帮助的人:754万
展开全部
MSDN只笼统一句话告诉你HBITMAP是HANDLE类型.要了解内部细节,你还得自己看SDK文件.
查看你的WinDef.h文件
-------------------------------------------------------------------------------------------------
#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
---------------------------------------------------------------------------------------------------------

如果定义了STRICT,那么HBITMAP类型就等于 HBITMAP__{}结构, HBITMAP同时也是HBITMAP__类型的指针.
如果没有定义STRICT, HBITMAP = HANDLE类型, HANDLE = PVOID类型.PVOID = void*类型
所以HBITMAP就等于void*类型.

要查看HBITMAP是个结构还是void*类型很简单(定义了trict,就是结构类型,否则void*)
你用void* p = static_cast<void*>( HBITMAP句柄).如果可以转换,HBITMAP就是void*.不行的话说明是结构类型.你必须用reinterpret_cast<>来转换.当然用C转换也行.
追问
这个问题不是5天前就选出满意答案了吗?
你怎么还能够回答这个问题呢?
我怎么就没办法回答那些已经选择满意答案的问题呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bhtzu
2012-07-04 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4221万
展开全部
位图文件句柄(本身是一个句柄,没有结构)
定义在WINDEF.H
MSDN是VC、VS的帮助文件,需要下载安装。学会看MSDN非常重要。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gm7996
2012-07-05 · TA获得超过1199个赞
知道小有建树答主
回答量:645
采纳率:100%
帮助的人:546万
展开全部
指向Bitmap的指针
MSDN是编程的参考文档 微软官方有下载 安装之后 在索引里搜索就行

MSDN不会用就无法做Windows开发
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秋三杂货铺
2012-07-05 · TA获得超过132个赞
知道答主
回答量:193
采纳率:100%
帮助的人:39.8万
展开全部
在msdn搜索的功能里打这个,HBITMAP是位图格式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式