宽字节

1、什么是ASCII码?

一张存储了字母大小写与一些符号的表,用一个字节表示,最高位不使用,最多只能存储128个符号或字母,但世界上有很多种语言,这远远不够

2、什么是扩展ASCII码?

把最高位也拿来使用,但还是不够

3、什么是GB2312?

天朝专家舍弃了扩展ASCII码,新增一个字节,当两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(他称之为高字节)从0xA1用到 0xF7,后面一个字节

4、这种编码存在什么问题?

乱码,其他国家可能也在用,同样的二进制可能对他们来说是其他语言

5、UNICODE的产生

Unicode只有一个字符集(一张表)

Unicode中的每个字符都是16位宽而不是8位宽

是国际上有个组织,为各个国家设计的一张大表,避免重复,乱码

事件 消息

Windows中的事件是一个“动作”,这个动作可能是用户操作应用程序产生的,也可能是Windows自己产生的.

而消息,就是用来描述这些“动作”的,比如:

这个动作是什么时候产生的?

哪个应用程序产生的?

在什么位置产生的?

等等。。。

Windows为了能够准确的描述这些信息,提供了一个结构体:MSG,该结构体里面记录的事件的详细信息.

typedef struct tagMSG {

HWND   hwnd;

UINT   message;

WPARAM wParam;

LPARAM lParam;

DWORD  time;

POINT  pt;

} MSG, *PMSG;

说明

1、hwnd:

表示消息所属的窗口

一个消息一般都是与某个窗口相关联的

在Windows中 HWND类型的变量通常用来标识窗口。

2、message

在Windows中,消息是由一个数值来表示的

但是由于数值不便于记忆,所以Windows将消息对应的数值定义为WM_XXX宏(WM == Window Message)

鼠标左键按下 WM_LBUTTONDOWN 键盘按下 WM_KEYDOWN

3、wParam 和 lParam

32位消息的特定附加信息,具体表示什么处决于message

4、time

消息创建时的时间

5、消息创建时的鼠标位置

按钮的本质:窗口

按钮的WNDCLASS不是我们定义的,是系统预定义好的。如果我们想知道,系统预定义的WNDCLASS都包含什么样的信息

怎么做?

TCHAR szBuffer[0x20];

GetClassName(hwndPushButton,szBuffer,0x20);

WNDCLASS wc;

GetClassInfo(hAppInstance,szBuffer,&wc);

OutputDebugStringF("-->%s\n",wc.lpszClassName);

OutputDebugStringF("-->%x\n",wc.lpfnWndProc);

总结:

1、按钮是一种特殊的窗体,并不需要提供单独的窗口回调函数.

2、当按钮有事件产生时,会给父窗口消息处理程序发送一个WM_COMMAND消息

回调函数(消息处理函数)的结构

LRESULT CALLBACK WindowProc(

IN  HWND hwnd,

IN  UINT uMsg,

IN  WPARAM wParam,

IN  LPARAM lParam

);

回调函数的堆栈

 
 
 

返回地址(ESP)

hwnd

uMsg

wParam

lParam

内核对象

windows一些知识的更多相关文章

  1. Windows通用知识讲解二

    NMAKE Makefile是一个解释执行的工具,根据Makefile文件中的定义,编译和链接程序,最终生成文件. Makefile(Windows下是.mak文件) 定义编译和链接等操作的脚本文件( ...

  2. Windows通用知识讲解一

    Window应用程序的类型 --控制台程序Console DOS程序,本身没有窗口,通过Windows DOS窗口执行 --窗口程序 拥有自己的窗口,可以与用户交互 --库程序 存放代码.数据的程序, ...

  3. windows基础知识(win7)

    右击 显示: 对设备进行管理: 在计算机属性中,开远程连接 控制面板: 控制面板下的操作中心: 控制面板下的管理工具: 控制面板下的默认程序: 控制面板下的日期时间: 控制面板下的鼠标: 控制面板下的 ...

  4. WIndows 相关知识

    Windows服务 图解WinXP局域网共享设置步骤 Win10如何搭建FTP服务器以实现快速传输文件 强大工具psexec工具用法简介 BIOS和CMOS的区别 系统CLSID简介和小技巧

  5. windows 小知识---windows下生成公钥和私钥

    首先Windows操作系统需要安装git. 安装完成后,再到任意的文件夹内,点击右键.选择git bash here 打开之后,输入ssh-keygen,一路按enter键. 全部结束后,再到C:\U ...

  6. Windows Socket知识总结

     目录 0 理解Socket 1 WinSock API 2 阻塞socket 3 非阻塞Socket 4 套接字IO模型  4.1 套接字IO模型:select(选择)  4.2 套接字IO模型:W ...

  7. C# windows服务知识集锦

    最近公司项目,本人也是刚接触windows服务,现在把这两天上网学习的一些资料拿出来与大家分享. 1).关于windows服务安装包的制作和自动启动服务 http://blog.csdn.net/re ...

  8. Windows 基础知识2

    1.进程通信的几种方式 管道:匿名,命名 信号 报文 共享内存 信号量:主要作为进程和同一进程的线程同步的方式 套接字 2.线程通信的几种方式: 临界区,信号量.互斥量.事件. 信号量:它允许多个线程 ...

  9. Windows系统小知识

    前言 本文写作于Window10发布后的2015-08-01,新系统发布后我做了新系统的小白鼠,所以写此文以作记录. WIN10各版本下载地址:http://www.ithome.com/html/w ...

随机推荐

  1. prefetch vs preload vs prerender vs preconnect All In One

    prefetch vs preload vs prerender vs preconnect All In One 前端性能优化 prefetch 预获取 https://developer.mozi ...

  2. 如何使用 iMovie 去除视频里面的声音

    如何使用 iMovie 去除视频里面的声音 视频去除背景音 iMovie https://www.apple.com/imovie/ https://books.apple.com/book/id14 ...

  3. HTML Custom Elements & valid name

    HTML Custom Elements & valid name valid custom element name https://html.spec.whatwg.org/multipa ...

  4. CSS3 & CSS var & :root

    CSS3 & CSS var & :root How to change CSS :root color variables in JavaScript https://stackov ...

  5. nasm astrcspn函数 x86

    xxx.asm %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export ast ...

  6. Flutter: MediaQuery

    Flutter Widget of the Week 使用MediaQuery根据不同的屏幕大小调整应用程序的UI布局. 您还可以使用它根据用户布局首选项进行UI调整. class _MyHomeSt ...

  7. 10000星光值兑换一个的VAST将如何搅动NGK算力市场?

    加密数字货币是私人而非政府所发行的数字资产,具有自己的"货币"账户单位,在可以预见的未来三年之内,加密数字货币将覆盖至少全世界五分之一的人口.为此,NGK方面也做出了自己的努力,在 ...

  8. Linux/UNIX编程如何保证文件落盘

    本文转载自Linux/UNIX编程如何保证文件落盘 导语 我们编写程序write数据到文件中时,其实数据不会立马写入磁盘,而是会经过层层缓存.每层缓存都有自己的刷新时机,每层缓存都刷新后才会写入磁盘. ...

  9. oracle 查看 FK constraint referenced_table及columns

    select uc.table_name, uc.r_constraint_name, ucc.table_name, listagg(ucc.column_name, ',') within gro ...

  10. ZooKeeper未授权访问漏洞确认与修复

    目录 探测2181 探测四字命令 用安装好zk环境的客户端连接测试 修复 修复步骤一 关闭四字命令 修复步骤二 关闭未授权访问 zookeeper未授权访问测试参考文章: https://www.cn ...