MFC学习Day1

windows消息机制

基本概念解释

WIndows操作系统上的GUI编程(不跨平台)

1.SDK&API

1. 1 SDK(software development kit)

软件开发工具包(第三方工具)

1.2 API(application programming interface)

windows操作系统提供给应用程序的编程接口。Windows应用程序API函数是通过C语言实现的,所有主要的Windows函数都在Windows.h头文件中进行了声明。Windows操作系统提供了1000多种API函数。

2.窗口和句柄

2.1窗口

包括状态栏,工具栏,标题栏,编辑区,菜单栏,等等。窗口可以分为客户区和非客户区。

2.2句柄

在Windows应用程序中,窗口时通过句柄(handle)来标识的,我们要对某个窗口进行操作,首先就要得到这个窗口的句柄。 句柄时windows程序中的一个重要的概念,使用也非常频繁,在Windows程序中,有各种各样的资源(窗口,图标,光标,画刷等),系统在创建这些资源时会为它们分配内存,并返回这些资源的标识号,即句柄。如有图标句柄,画刷句柄,光标句柄等等。

3.消息与消息队列

消息处理机制

如鼠标点击事件发生后,操作系统捕捉此消息,而后封装好在推入消息队列中。应用程序再通过GetMessage()取消息,再分发给操作系统,而后操作系统再通过回调函数完成信息处理。这个过程也叫窗口过程。

4.Winmain函数

当Windows操作系统启动一个程序时,它调用的就是该程序的winmain函数(实际上时由插入到可执行文件中的启动代码调用的)。Winmain函数是Windows程序的入口点函数,与DOS程序的入口点函数main的作用相同,当Winmain函数结束或返回时,Windows应用程序结束。

Windows编程模型

一个完整的Win32程序,程序实现的功能是创建一个窗口并在该窗口响应键盘及鼠标事件,程序的实现步骤为

  1. WinMain函数定义

  2. 创建一个窗口

  3. 进行消息循环

  4. 编写窗口过程函数

    具体六个步骤

    1. 设计窗口WNDCLASS wc

    2. 注册窗口RegisterClass

    3. 创建窗口creatWindows

    4. 显示和更新showWindow及updateWIndow

    5. 通过循环取消息 MSG msg,通过这个消息结构体来处理消息

      • 写循环while(1)

      • GetMessage()==false退出循环

      • 翻译消息

      • 分发消息

    6. 窗口过程处理

      • 窗口过程函数LRESULT CALLBACK WindowProc

      • 返回默认处理return DefWindowProc(hwnd, uMsg, wParam, lParam);

      • 利用分支机构来对不同的消息做不同的处理



 

posted @ 2020-06-29 17:12  how_you_make_me_feel  阅读(97)  评论(3编辑  收藏  举报