文档章节

关于 Lo、Hi、LoWord、HiWord

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 352
阅读 12
收藏 0
Cardinal 是 4 字节无符号的整型, 先看一个例数:

Cardinal 例数: 4277991664
按字节划分: 第四字节 第三字节 第二字节 第一字节
二进制: 11111110 11111100 11111000 11110000
十六进制: FE FC F8 F0
十进制: 254 252 248 240
按双字节划分: 高两位 低两位
二进制: 1111111011111100 1111100011110000
十六进制: FEFC F8F0
十进制: 65276 63728

//可以用 Lo 函数提取它的低字节(也就是第一个字节)
const
  c: Cardinal = 4277991664;
begin
  ShowMessageFmt('%d', [Lo(c)]); {240}
end;

 
 
 
 
 

 

 

  
//其实不使用 Lo 函数, 通过 Byte 类型转换也可以获取第一个字节 const c: Cardinal = 4277991664; begin ShowMessageFmt('%d', [Byte(c)]); {240} end;
//Hi 函数说是获取高位字节, 其实是获取第二个字节 const c: Cardinal = 4277991664; begin ShowMessageFmt('%d', [Hi(c)]); {248} end;
//如果要获取低两位, 貌似应该有个 LoWord 函数; 确实有, 但它不是函数, 只是 Word 类型的一个别称. const c: Cardinal = 4277991664; begin ShowMessageFmt('%d', [LoWord(c)]); {63728} ShowMessageFmt('%d', [Word(c)]); {63728} end;
//HiWord 函数是提取高两位的 const c: Cardinal = 4277991664; begin ShowMessageFmt('%d', [HiWord(c)]); {65276} end;
说说 LoWord 和 HiWord 的用途:

譬如在一个鼠标消息的消息参数 lParam 中存放着鼠标位置. lParam 是 4 字节的, 它的低两位存放 x、高两位存放 y ...

我在这个例子中用到过: http://www.cnblogs.com/del/archive/2008/04/19/1160968.html

System 单元下的公用函数目录

本文转载自:http://www.cnblogs.com/del/archive/2008/04/23/1167554.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
几个WM消息其lParam和wParam参数定义

几个WM消息其lParam和wParam参数定义 鼠标消息 lParam:低字组为x 座标,高字组为y 座标,这两个座标是相对于窗口显示区域左上角的位置。 Wparam:指示滑鼠按键以及Shift和Ctrl 键的状态。可...

IMGTN
2012/10/03
0
1
关于Windows中滚动条的问题。。

这是Windows程序设计第五版中第四章的一段代码,问题就是程序首先定义的一个变量iVscrollPos,但是这个变量是在哪个地方初始化的呢?因为看到直接用貌似是直接操作iVscrollPos,却没找到在哪里...

摩西摩西
2013/05/15
135
0
MFC中ListControl控件的使用

以下未经说明,listctrl默认view 风格为report 1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: ...

范大脚脚
2017/11/16
0
0
VC控件ListCtrl的使用方法总汇

以下未经说明,listctrl默认view 风格为report ------------------------------------------------------------------------------- 1. CListCtrl 风格 LVSICON: 为每个item显示大图标 LVSS......

barsoom
2012/11/26
0
0
利用 AttachThreadInput 改变其它进程的输入法状态

利用 AttachThreadInput 和 WM_INPUTLANGCHANGEREQUEST 消息改变其它进程的输入状态 众所周知,通过 ActivateKeyboardLayout 函数可以改变当前线程的输入法状态,不过最近发现通过 AttachTh...

长源
2009/07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

开发者和架构师之间最大的区别是什么?

1、开发者和架构师之间最大的区别是什么? 架构师和开发者一样,也经常写代码,简单的说,开发者和架构师之间最大的区别就是技术领导力。 软件架构师的角色需要理解最重要的架构驱动力是什么...

James-
24分钟前
1
0
java框架学习日志-4

补充一些spring配置文件的方法。 设置别名: <!--通过name直接设置别名--> <bean name="user2" class="cn.sxt.factory.UserDynamicFactory"> </bean> <!--有id的情况下也可以设置......

白话
27分钟前
2
0
20181213 上课截图

小丑鱼00
43分钟前
1
0
nginx+php-fpm配置后页面显示空白的解决方法以及用nginx和php-fpm解决“502 Bad Gateway”问题

https://stackoverflow.com/questions/15423500/nginx-showing-blank-php-pages For reference, I am attaching my location block for catching files with the .php extension: location ~......

Yao--靠自己
50分钟前
3
0
mac 没声音

somehow不时就会出现这种情况。之前都得重启。 其实可以直接在terminal里打以下命令: sudo kextunload /System/Library/Extensions/AppleHDA.kext sudo kextload /System/Library/Extension...

dubox
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部