文档章节

关于 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
117
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

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
27
0
学习设计模式——观察者模式

1. 认识观察者模式 1. 定义:定义对象之间一种一对多的依赖关系,当一个对象状态发生变化时,依赖该对象的其他对象都会得到通知并进行相应的变化。 2. 组织结构: Subject:目标对象类,会被...

江左煤郎
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部