zoukankan      html  css  js  c++  java
  • windows句柄和消息技术

     

      windows编程势不可挡。windows编程中所有编程的骨架都是响应和发送消息。什么是message?
    消息就是一个指定事件的32byte,若移动鼠标,就会往活动窗口上发送一条消息(WM_MOUSEMOVE),若按下某个键,也会发送一条消息(WM_KEYDOWN) ,若改变大小,也会发送消息WM_SIZE
     那么,这些消息到哪里去了?他们将排队等候,最终将唷窗口把他们从队列中取出,并作出相应的反应。
     
     句柄(handle),windows具有很强的面向对象的特性。window对象很多,譬如桌面,读取的应用程序等等。在非面向对象语言中,程序员如何区分这些东西呢?使用句柄。句柄是引用不同windows对象的方式。 
     
     句柄是某种类型的指针,必须使用某种方式创建这些句柄,当不再使用他们时,应该销毁他们。否则导致resource leak,
     
    现在将消息和句柄联系起来。假如有一个窗口,且拥有该窗口的一个句柄(称做一个HWND) 命名句柄为your_HWND,因为其他窗口刚刚从该窗口上移走,操作系统希望重绘窗口。windows传递如下消息
    PostMessage(your_HWND,WM_PAINT,0,0)
     
    ;这个函数通过句柄给窗口发送了一条绘制消息。最后两个参数用作消息的额外信息,暂时不必深究。
     
    现在,应用程序有一个函数用一个庞大的case语句来处理所有的消息
    void HandleTheMessage(long Message)
    {
    switch(Message)
    {
        case WM_PAINT:
              DrawWindow();
              break;
        case WM_KEYDOWN:
         ----break;
       ----
    }
    以上就是window的大致工作流程。
  • 相关阅读:
    【luogu4719】动态DP模板 [动态DP]
    【2019.9.22】
    [JSOI2010]连通数[tarjan缩点]
    【2019.9.16】Za
    【2019.9.18】Za
    [USACO14OPEN]GPS的决斗Dueling GPS's [最短路]
    【CF891C】Envy [最小生成树]
    【2019.9.17】Za
    【2019.9.17】
    【luogu3403】跳楼机 [同余最短路]
  • 原文地址:https://www.cnblogs.com/youxin/p/2587954.html
Copyright © 2011-2022 走看看