zoukankan      html  css  js  c++  java
  • 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);

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



  • 相关阅读:
    212-@Slf4j注解起到了什么作用?
    212-如何实现定时器扫描?
    211-redis单线程问题?
    211-Feign中的@RequestParm与@RequestBody注解的使用
    210-java加载类的时候,发生了什么了呢?
    209-thymeleaf简单使用
    JS自定义 Map
    java Main方法 获取 maven 的resource 下的xml文件
    springboot+thymeleaf 访问静态资源解决(static)
    两个list 合并后去除掉重复removeAll()的,然后再随机获取最后list中的 几个值
  • 原文地址:https://www.cnblogs.com/yuanshixiao/p/13208910.html
Copyright © 2011-2022 走看看