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);

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



  • 相关阅读:
    页面滚动性能优化之passive
    【webpack4x】部分底层原理及手写一个简单打包工具
    【webpack4x】实战配置及问题解析
    【webpack4x】高级概念
    【webpack4x】核心概念
    VMware虚拟机服务的vmware-hostd自动启动和停止
    海淘电商网址
    一键批量ping任意ip段的存活主机
    cpanel导入大数据库(mysql)的方法
    awstats 日志分析
  • 原文地址:https://www.cnblogs.com/yuanshixiao/p/13208910.html
Copyright © 2011-2022 走看看