• win32创建窗口函数(windows程序内部运行机制)


    利用win32创建窗口函数,主要操作步骤为:

    1、设计一个窗口类
    2、注册窗口类
    3、创建窗口
    4、显示及窗口更新
    5、消息循环
    6、窗口过程函数
     
    (1)设计一个窗口类
    设计窗口类,这样的类型已经被windows定义好了,我们只需要像选择题一样填满定义好的结构体(WNDCLASS)即可。
    首先有两个一般设为0的选项:cbClsExtra和cbWndExtra,这两个是类附加内存和窗口附加内存。
    hbrBackground指定窗口类的背景画刷句柄。可以用来指定一个画刷的句柄,也可以指定一个标准的系统颜色值。
    hCursor指定窗口类的光标句柄
    hIcon指定窗口类的图标句柄
    hInstance指定包含窗口过程程序的程序的实例句柄
    lpfnWndProc是一个函数指针,指向窗口过程函数
    lpszClassName指定窗口类的名字
    lpszMenuName指定菜单资源的名字
    style指定窗口的样式
     
    (2)注册窗口类
    RegisterClass( xxx )里面的参数为指向窗口WNDCLASS的指针
    让操作系统知道这一类型的窗口相关信息
     
    (3)创建窗口
    hwnd = CreateWindow(lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParant,hMenu,hInstance,lpParam)
    lpClassName指定窗口类的名称,即窗口类中的lpszClassName
    lpWindowName指定窗口的名字
    dwStyle指定创建的窗口样式,主要是窗口显示些什么东西
    x,y,nWidth,nHeight左上角坐标,长、宽
    hWndParant指定被创建窗口的父窗口句柄
    hMenu指定窗口菜单的句柄
    hInstance指定窗口所属的应用程序实例的句柄
    lpParam多数窗口将这个设为NULL
     
    (4)显示及更新
    ShowWindow(hwnd,窗口显示状态);
    UpdateWindow(hwnd);
     
    (5)消息循环
    创建、显示、更新窗口之后,需要有一个消息循环,不断的从消息队列中读取消息。
    GetMessage( lpMsg , hWnd , wMsgFilterMin, wMsgFilterMax)
    lpMsg指向一个消息结构体(MSG)
    hWnd指定接收哪一个窗口的消息,通常设为NULL,接收属于调用线程所有窗口的窗口消息
    wMsgFilterMin,wMsgFilterMax指定要获取的消息最小值和最大值,通常设为0
    GetMessage函数对于WM_QUIT消息,返回0
    TranslateMessage和DispatchMessage对收到的消息进一步处理
     
    (6)窗口过程函数
    用于处理发送给窗口的消息
     
     
    这一章主要通过一个win32编程的例子,讲述了windows程序设计,是一种交互式的、事件驱动的程序设计模式,基于消息的。
     
    详细内容,参考VC++深入讲解这本书吧
    本节程序
     
     

    作者:禅在心中

    出处:http://www.cnblogs.com/pinking/

    本文版权归作者和博客园共有,欢迎批评指正及转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Salesforce API的概念
    Salesforce Iot / salesforce 物联网
    Salesforce Ant 元数据迁移工具(学习笔记)
    Lightning Component 控制样式显示隐藏的两种方式;
    Lightning Component 嵌入到 VF Page
    salesforce 页面开发
    Lightning Component 开发笔记以及注意事项
    salesforce 打印文档(内部类,子查询)
    小程序知识点
    js创建对象的几种方式
  • 原文地址:https://www.cnblogs.com/pinking/p/6164765.html
Copyright © 2020-2023  润新知