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

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

  • 相关阅读:
    开发周记
    开发日记03
    开发日记01
    MVC实例应用
    MVC概述
    23种设计模式简述
    xx系统属性分析
    淘宝网质量属性
    架构漫谈阅读笔记
    浅谈软件架构师工作流程
  • 原文地址:https://www.cnblogs.com/pinking/p/6164765.html
Copyright © 2011-2022 走看看