nID & 0xFFF0是啥意思?

asbeforelong 2005-04-09 09:51:50
void CLCDemoDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}

这里面nID & 0xFFF0是啥意思?
...全文
877 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ironox 2005-04-10
  • 打赏
  • 举报
回复
只取nID的前3个字节(nID本身是int类型,占4个字节(win32))
========================>
说的是什么啊,难道0xFFF0也是四个字节,要这样的话。那不得是0x0F0F0F00?
ybt631 2005-04-10
  • 打赏
  • 举报
回复
错,字节应该该为半个字节
ybt631 2005-04-10
  • 打赏
  • 举报
回复
只取nID的前3个字节(nID本身是int类型,占4个字节(win32))
dfyang 2005-04-10
  • 打赏
  • 举报
回复
回去好好翻翻C语言
erben 2005-04-09
  • 打赏
  • 举报
回复
位运算,用处大得很,不懂的话VC中很多地方不好理解
wy2001wy 2005-04-09
  • 打赏
  • 举报
回复
是位运算符我想楼主应该不会不知道吧,我猜楼主是不是要问为什么要和0xFFF0进行与运算取前12位啊。这个嘛我也不知道,楼主要不是问这个,我来借光问问。
kugou123 2005-04-09
  • 打赏
  • 举报
回复
是位运算
i777 2005-04-09
  • 打赏
  • 举报
回复
nID & 0xFFF0取
nID的高位(从第5位开始)
也就是因为nID的低4位是什么比如0~F都是一样的
因为资源id是分段的同一段可能都代表同一个资源
fayifu 2005-04-09
  • 打赏
  • 举报
回复
位操作"&"与 “0xFFF0”十六进制
晨星 2005-04-09
  • 打赏
  • 举报
回复
把nID跟0xFFF0一个bit一个bit地做“与”运算。实际上就是保留了从右边数的第二个字节,以及第一个字节的高4位。

经鉴定楼主语言基础不扎实,责令立即去家看书。
鉴定完毕,谢谢。^0^

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧