Window程序内部机制(上)

本文深入探讨Windows程序内部机制,包括API、SDK的概念,窗口的构成和分类,以及句柄、消息和消息队列的作用。重点讲解了窗口的创建过程,从设计窗口类到注册窗口类,再到窗口的显示和更新。此外,还阐述了消息的处理,如GetMessage、TranslateMessage和DispatchMessage函数的工作原理,以及SendMessage与PostMessage的区别。
摘要由CSDN通过智能技术生成

Window程序内部机制

APIWindows操作系统本身提供各种各样的函数,而这些函数是应用程序开发人员编程时调用的接口,即应用程序接口(APIApplication Programming Interface)。
SDK软件开发包(Software Development Kit),包含了API函数库、帮助文档、使用手册、辅助工具等资源。

窗口:
1.一个应用程序至少要有一个窗口,称为主窗口。
2.一个应用程序窗口通常包含:标题栏、菜单栏、系统菜单、最小化框、最大化框、可调边框,滚动条。(注:包含的这些不能说是窗口)
窗口分为:客户区(windows应用程序管理)和非客户区(应用程序管理外观与操作)。

3.电脑开机启动,进入windows系统后,显示的桌面,是一个桌面窗口。

4.父窗口与子窗口,子窗口的形式有按钮、单选按钮、复选框、组框、文本框等。

句柄:
句柄有两种含义:
1.是一个特殊的智能指针,当一个应用程序引用其他系统的内存块或者对象的时候,就用到了这种句柄。
2.我们现在所讲编写Win32窗口程序的这种句柄,它不是一个智能指针。它是用来标识应用程序中的不同对象和同类中的不同的实例,是windows用来标识应用程序中使用唯一的整数值,即大小为4字节(在64位程序中是8字节)。windows系统大量使用了句柄来标识对象,比如:一个窗口、按钮、图标、滚动条、输出设备、控件、文件等对象,均是通过句柄来访问相应的对象的信息。

消息:

typedef struct tagMSG{

    HWND hwnd;         //标识窗口,标识某个活动窗口

    UINT messge;       //消息的标识符,不同消息对应的数值不同,数值一般为WM_XXX

    WPARAM wParam;    //消息的附加消息

    LPARAM lParam;

    DWORD time;

    POINT pt;

}MSG;


 

详细说明各个参数:
------------------
HWND一个消息一般都是和某一个窗口有关系的,用来标识窗口。发送一个消息, 就表明该消息由指定的窗口接受。
比如有ABC三个窗口。如果A窗口发送给C窗口,就标识一个窗口进行传送数据,而不是B窗口去接收数据。。

-----------------
UINT messge;消息的标识符,即消息的名称。不同消息对应的数值不同,数值由于不方便记忆,所以一般定义为为WM_XXX宏(XXX是相应的字母),在查看定义中有各自确切的数值。比如WM_CHAR,表示消息是字符消息,在VS查看定义中的确切数值为0x0102
------------------
WPARAMLPARAMWPARAM16位短整数(查看定义为WPARAM->ULONG_PTR- >unsigned int,LPARAM32位整型变量(查看定义:LPARAM->LONG_PTR->long )。这两个都是Win16系统遗留下来的产物,到了Win32API,都是32,大小是一 样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值