如何获取Windows消息中的高、低位的方法

来源:互联网 发布:苹果k歌软件 编辑:程序博客网 时间:2024/06/05 16:30

long a = 123456789;
取高位,先将a右移16位,这时,高位自动填零
a >>= 16;
此时高位为零,此值在消息中用来存储y的坐标
对于低位,直接与0xFFFF相与,即
a &= 0xFFFF;
因为0xFFFF的二进制为1111111111111111,所以与其相与,则取得此数值的低位,因为0xFFFF的高位为零,所以自动截断。
此值在消息中用来存储x的坐标。
protected override void WndProc(ref Message m)
  {
   long h = (long)m.LParam;
   long l = (long)m.LParam;

   if( m.Msg == 0x201 )
   {
    h >>= 16;   

    l &= 0xFFFF;
    string str = "y:" + h.ToString() + ",x:" + l.ToString();
    MessageBox.Show( str );
   }
   base.WndProc (ref m);
}

原创粉丝点击