【Windows】Windows中的数据类型以及命名
一、大写标示符
Windows中的很多标识符都是以两个或者三个大写字母作为前缀的,且其后紧跟一个下划线。这些标识符都是常量数值,前缀表明该常量的一般类别。如下
| 前缀 | 常量 |
| CS(Class Style) | 类风格选项 |
| CW(Create Window) | 创建窗口选项 |
| DT(Draw Text) | 文本绘制选项 |
| IDI(ID Image) | 图标的ID号 |
| IDC(ID Cursor) | 光标的ID号 |
| MB(Messge Box) | 消息框选项 |
| SND(Sound) | 声音选项 |
| WM(Window Message) | 窗口消息 |
| WS(Window Style) | 窗口风格 |
二、数据类型:WPARAM,LPARAM, LRESULT
当windows还是16位系统时,WndProc的第三个参数定义为WORD,表示一个16位的无符号短整型,而第四个参数定义为LONG,表示一个32位的有符号长整形,所以“PARAM”的前缀“W”和“L”正是由此而来。但是在32位版本的Windows中,WPARAM定义为UINT,而LPARAM定义为LONG,因此两者都是32位的。LRESULT是返回值类型,该类型等价于LONG。
数据结构
| 结构 | 含义 |
| MSG | 消息结构 |
| WNDCLASS | 窗口类结构 |
| PAINTSTRUCT |
绘制结构 |
|
RECT |
矩形结构 |
三、句柄
| 标识符 | 含义 |
| HINSTANCE | 实例句柄--程序本身 |
| HWND | 窗口句柄 |
| HDC | 设备环境句柄 |
| HICON | 图标句柄 |
| HCURSOR | 鼠标指针的句柄 |
四、匈牙利标记法
在Windows中一般采用匈牙利标记法来作为变量的命名规定。该标记法以变量名以表明该变量数据类型的小写字符开始。当命名结构变量时,可使用结构名的小写形式作为该变量名称的前缀或整个变量名。
| 前缀 | 数据类型 |
| c | char或WCHAR或TCHAR |
| by | BYTE(无符号字符) |
| n | short(短整形) |
| i | int(整形) |
| x,y | int,表示x坐标和y坐标 |
| cx,cy | int,表示x或y的长度,c表示“count”(计数) |
| B或f |
BOOL(int),f表示“flag” |
| w | WORD(无符号短整型) |
| l | LONG(长整形) |
| dw | DWORD(无符号长整形) |
| fn | 函数 |
| s | 字符串 |
| sz | 以零结尾的字符串 |
| h | 句柄 |
| p | 指针 |
【Windows】Windows中的数据类型以及命名的更多相关文章
- 关于Linux系统和Windows系统中文件夹的命名规范
Windows系统中. 1.在创建文件夹的时候不能以"."开头(但是文件以多个点开头并且还有其他合法字符的话就是合法的) 但是在windows系统中确实见过以一个点".& ...
- windows编程中的数据类型
在windows编程中,有许多奇怪的数据类型,初学者不知道这些代表什么,下面就把一些数据类型列出如下: ATOM 原子(原子表中的一个字符串的参考) BOOL 布尔变量 BOOLEAN 布尔变量 BY ...
- C#中调用Windows API时的数据类型对应关系
原文 C#中调用Windows API时的数据类型对应关系 BOOL=System.Int32 BOOLEAN=System.Int32 BYTE=System.UInt16 CHAR=System. ...
- Windows 编程中恼人的各种字符以及字符指针类型
在Windows编程中,很容易见到这些数据类型:LPSTR,LPTSTR,LPCTSTR... 像很多童鞋一样,当初在学Windows编程的时候,对着些数据类型真的是丈二和尚,摸不着头脑,长时间不用就 ...
- 重装助手教你如何在Windows 10中更改您的帐户名称
当您设置新的Win10免费下载 PC时,您选择用户名的部分可能会让您措手不及.如果是这种情况,您可以选择弹出头部的第一件事或者您打算稍后更改的随机和临时事物.但令人惊讶的是,在Windows 10中更 ...
- 将WCF寄宿在托管的Windows服务中
在我之前的一篇博客中我介绍了如何发布WCF服务并将该服务寄宿于IIS上,今天我再来介绍一种方式,就是将WCF服务寄宿在Windows服务中,这样做有什么好处呢?当然可以省去部署IIS等一系列的问题,能 ...
- Windows系统中设置Python程序定时运行方法
Windows系统中设置Python程序定时运行方法 一.环境 win7 + Python3.6 二.步骤 1,在Windows开始菜单中搜索“计划任务”,并且点击打开“计划任务”: 2.点击“创建基 ...
- 如何在 Windows 10 中搭建 Node.js 环境?
[编者按]本文作者为 Szabolcs Kurdi,主要通过生动的实例介绍如何在 Windows 10 中搭建 Node.js 环境.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 在本文中 ...
- python - 在Windows系统中安装Pygame及导入Eclipse
环境:python3.6(只有一个版本)+ windows10(64 bit) + Eclipse+pydev python3.6安装完成后,会自带 easy_install 和 pip3,在Win ...
随机推荐
- Beta Round #9 (酱油杯noi考后欢乐赛)最大伤害
题目:http://www.contesthunter.org/contest/Beta%20Round%20%EF%BC%839%20%28%E9%85%B1%E6%B2%B9%E6%9D%AFno ...
- log4net封装类 zz
封装说明: 1.使用静态方法调用即可写入日志. 2.在日志信息写入之前,定义委托处理日志信息,便于记录日志信息之前,显示给用户. 3.添加代码配置Log4net,避免应用程序总是携带配置文件.如果需要 ...
- win7下安装load generator
win7下只安装loadrunner load generator 1.点击setup.exe 2.选择“loadrunner 完整安装程序” 3.安装完成所需要的插件,然后重启 4.重新打开安装 ...
- 今天遇到的i++问题之记录
今天逛贴吧看到的,与自己预想的不同,于是在群里求解后方得知答案,遂记录之.代码来袭. function a(){ var i=1; i++; alert(i); } var c = a(); c(); ...
- java的好资料总结
1jvm的垃圾回收http://wenku.baidu.com/link?url=gf08pYxNxVC2ZR607Qv9gn1pkFs5T1Pp5YHxISBEFdcz0D1HdK-7YOuSDft ...
- Bzoj 3747: [POI2015]Kinoman 线段树
3747: [POI2015]Kinoman Time Limit: 60 Sec Memory Limit: 128 MBSubmit: 553 Solved: 222[Submit][Stat ...
- Hadoop 配置好hive,第一次在conf能进入,第二次就不行了,怎么办?
问题描述: 在 Hadoop 配置好 hive 数据仓库,在conf目录下通过hive命令进入hive数据仓库,非常顺利. 但关闭终端,第二次按这种方式却显示,无次命令. 怎么办? 解决办法: 在h ...
- Java 并发包中的读写锁及其实现分析
1. 前言 在Java并发包中常用的锁(如:ReentrantLock),基本上都是排他锁,这些锁在同一时刻只允许一个线程进行访问,而读写锁在同一时 刻可以允许多个读线程访问,但是在写线程访问时,所有 ...
- Clojure学习资料
以下大部分收藏自博客:http://blog.csdn.net/ithomer/article/details/17225813 官方文档: http://clojure.org/documentat ...
- java 反射(reflect)总结,附对象打印工具类
java反射机制认知 java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取类的信息以及动态调用对象的方法的 ...