MessageBox实现机制

MessageBox实现机制

这是一个简单的windos程序,MessageBox在进行 MB_YESNO|MB_ICONQUESTION 运算后怎么判断含有YESNO按钮和ICONQUESTION图标呢?

 

按钮的宏定义:

#define MB_OK                       0x00000000L
#define MB_OKCANCEL                 0x00000001L
#define MB_ABORTRETRYIGNORE         0x00000002L
#define MB_YESNOCANCEL              0x00000003L
#define MB_YESNO                    0x00000004L
#define MB_RETRYCANCEL              0x00000005L

 

图标的宏定义:

#define MB_ICONHAND                 0x00000010L
#define MB_ICONQUESTION             0x00000020L
#define MB_ICONEXCLAMATION          0x00000030L
#define MB_ICONASTERISK             0x00000040L

==================================================

#define MB_YESNO                           0x00000004L转换为2进制就是:0000 0100

 

#define MB_ICONQUESTION             0x00000020L准换为2进制就是:0010 0000

 

进行或运算得到 0010 0100,高字节保存了图标信息,低字节保存了按钮信息

======================================================

 

MessageBox怎么判断 0010 0100里包含了什么按钮和什么图标呢?

 

 

总结:

对一个2进制想然它某几位为0可以让这几位和0进行与(&)运算,某几位保持不变可以和1进行与运算

如:1010 0010想让他高字节为0,低字节保持不变可以这样: 1010 0010 & 0000 1111 = 0000 0010

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值