zoukankan      html  css  js  c++  java
  • CreateWindow

    函数功能:

    CreateWindow 函数创建一个重叠式窗口、弹出式窗口或子窗口。它指定窗口类,窗口标题,窗口风格,以及窗口的初始位置及大小(可选的)。函数也可以指定该窗口的父窗口或所属窗口(如果存在的话),及窗口的菜单。

    若要使用除CreateWindow函数支持的风格外的扩张风格,则使用CreateWindowEx函数替代CreateWindow函数。

    API函数原型:

    注释:_IN_说明该参数是输入的,_OPT_说明该参数是可选参数。

    HWND WINAPI CreateWindow(

      _In_opt_  LPCTSTR lpClassName,               //窗口类名称

      _In_opt_  LPCTSTR lpWindowName,           //窗口标题

      _In_      DWORD dwStyle,                         //窗口风格或称窗口格式

      _In_      int x,                                          //初始x坐标

      _In_      int y,                                          //初始y坐标

      _In_      int nWidth,                                 //初始x方向尺寸

      _In_      int nHeight,                                //初始y方向尺寸

      _In_opt_  HWND hWndParent,                 //父窗口句柄

      _In_opt_  HMENU hMenu,                        //窗口菜单句柄

      _In_opt_  HINSTANCE hInstance,             //程序实例句柄

      _In_opt_  LPVOID lpParam                       //创建参数

    );

    参数解析

    参数

    含义

    lpClassName

    1、  窗口类名称,可以是一个指向NULL结束的字符串或一个整形数值

    2、  如果是字符串,它制定了窗口的类名。这个类名可以是任何用函数RegisterClass注册的类名,或是任何预定义的控制类名

    3、  如果是一个整型量,它是由此前调用theGlobalAddAtom函数产生的全局量。这个小于0xC000的16位数必须是lpClassName参数字的低16位,该参数的高位必须是0

    lpWindowName

    1、  窗口标题,一个指向NULL结束的字符串指针

    2、  如果窗口风格指定了标题条,由lpWindowName指向的窗口标题将显示在标题条上

    3、当使用CreateWindow函数来创建例如按钮,选择框和静态控制时,可使用lpWindowName来指定控制文本

    dwStyle

    指定创建窗口的风格(详见下方)

    x

    1、  指定窗口的初始水平位置(x坐标)

    2、  对于一个层叠或弹出式窗口,x参数是屏幕坐标系的窗口的左上角的初始x坐标

    3、  对于子窗口,x是子窗口左上角相对父窗体客户区左上角的初始x坐标

    4、  如果该参数被设定为CW_USEDEFAULT则系统为窗口选择缺省的左上角坐标并忽略y参数,CW_USEDEFAULT只对层叠窗口有效,如果为弹出式窗口或子窗口设定,则x和y参数被设为0

    y

    1、  指定窗口的初始垂直位置(y坐标)

    2、  对于一个层叠或弹出式窗口,y参数是屏幕坐标系的窗口的左上角的初始y坐标

    3、  对于子窗口,y是子窗口左上角相对父窗体客户区左上角的初始y坐标

    4、  对于列表框,y是列表框客户区左上角相对父窗口客户区左上角的初始y坐标

    5、  如果层叠窗口是使用WS_VISIBLE风格创建的并且x参数被设为CW_USEDEFAULT,则系统将忽略y参数

    nWidth

    1、  以设备单元致命窗口的宽度

    2、  对于层叠窗口,nWidth的值是屏幕坐标的窗口宽度或是CW_USEDEFAULT

    3、  若nWidth是CW_USEDEFAULT,则系统为窗口选择一个默认的高度和宽度(默认宽度为从初始x坐标开始到屏幕的右边界,缺省高度为从初始y坐标开始到目标区域的顶部),CW_USEDEFAULT只对层叠窗口有效,如果为弹出式窗口和子窗口设定CW_USEDEFAULT标志则nWidth和nHeight被设为0

    nHeight

    1、  以设备单位指明窗口的高度

    2、  对于层叠窗口,nHeight是屏幕坐标的窗口宽度

    3、  若nWidth被设定为CW_USEDEFAULT,则系统将忽略nHeight参数,自动为nWidth和nHeight设置默认参数

    hWndParent

    1、  指向被创建窗口的父窗口或所有者窗口的句柄

    2、  若要创建一个子窗口或一个从属窗口,需提供一个有效的窗口句柄

    3、  创建一个单纯的消息窗口,可以提供HWND_MESSAGE或提供一个已存在的消息窗口的句柄

    hMenu

    1、  指向窗口菜单句柄,或依据窗口风格指明一个子窗口标识

    2、  对于层叠或弹出式窗口,hMenu指定窗口使用的菜单,如果使用了菜单类,则hMenu可以为NULL

    3、  对于子窗口,hMenu指定了该窗口标识(一个整型量),一个对话框使用这个整型值将时间通知父类。应用程序确定了子窗口标识,这个值对于相同父窗口的所有子窗口必须是唯一的

    hInsatnce

    与窗口相关联的模块实例的句柄

    lpParam

    1、  指向一个值的指针,该值传递该窗口WM_CREATE消息。该值通过在IParam参数中的CREATESTRUCT结构传递

    2、  如果应用陈谷调用CreateWindow创建一个MDI客户窗口,则lpParam必须指向一个CLIENTCREATESTRUCT结构

    dwStyle风格解析

    窗口风格

    含义

    WS_BORDER

    创建一个带边框的窗口

    WS_CAPTION

    创建一个有标题框的窗口(包含了WS_BODER风格)

    WS_CHILD

    创建一个子窗口,这个风格的窗口不能拥有菜单也不能与WS_POPUP风格合用

    WS_CHILDWINDOW

    与WS_CHILD相同

    WS_CLIPCHILDREN

    当在父窗口内绘图时,排除子窗口区域,在创建父窗口时使用这

    WS_CLIPSIBLINGS

    1、  排除子窗口之间的相对区域,也就是,当一个特定的窗口接收到WM_PAINT消息时,WS_CLIPSIBLINGS风格将所有层叠窗口排除在绘图之外,只重绘指定的窗口

    2、  如果未指定该风格,并且窗口是层叠的,则在重绘子窗口的客户区是,就会重绘邻近的子窗口

    WS_DISABLED

    1、  创建一个初始状态为禁止的子窗口,一个禁止状态的窗口不能接受来自用户的输入信息

    2、  在窗口创建之后,可以调用EnableWindow函数来启用该窗口

    WS_DLGFRAME

    创建一个带有对话框边框风格的窗口,这种风格的窗口不能带有标题条

    WS_GROUP

    1、  指定一组“控制窗口”的第一个“控制窗口”

    2、  这个“控制窗口”组由第一个“控制窗口”和随后定义的“控制窗口”组成,自第二个“控制窗口”开始每个“控制窗口”具有WS_GROUP风格

    WS_HSCROLL

    创建一个有水平滚动条的窗口

    WS_ICONIC

    创建一个初始状态为最小化的窗口,与WS_MINIMIZE风格相同

    WS_MAXIMIZE

    创建一个初始化状态为最大化状态的窗口

    WS_MAXIMIZEBOX

    创建一个具有最大化按钮的窗口,该风格不能与WS_E_CONTEXTHELP风格同时出现,同时必须指定WS_SYSMENU风格

    WS_MINIMIZE

    创建一个初始化状态为最小化状态的窗口,与WS_ICONIC风格相同

    WS_MINIMIZEBOX

    创建一个具有最小化按钮的窗口,该风格不能与WS_EX_CONTEXTHELP风格同时出现,同时必须指定WS_SYSMENU风格

    WS_OVERLAPPED

    产生一个层叠的窗口,一个层叠的窗口有 标题条和一个边框,与WS_TILED风格相同

    WS_OVERLAPPEDWINDOW

    相当于(WS_OVERLAPPED  | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)与WS_TILEDWINDOW风格相同

    WS_POPUP

    创建一个弹出式窗口,该风格不能与WS_CHILD风格同时使用

    WS_POPUPWINDOW

    相当于(WS_POPUP | WS_BORDER | SW_SYSMENU),但WS_CAPTION和WS_POPUPWINDOW必须同时设定才能使窗口菜单可见

    WS_SIZEBOX

    创建一个可调边框的窗口,与WS_THICKFRAME风格相同

    WS_SYSMENU

    创建一个在标题条上带有窗口菜单的窗口,必须同时设定WS_CAPTION风格

    WS_TABSTOP

    1、  创建一个“控制窗口”,在用户按下Tab键时可以获得键盘焦点

    2、  按下Tab键后使键盘焦点转一到下一个具有WS_TABSTOP风格的“控制窗口”

    WS_THICKFRAME

    创建一个具有可调边框的窗口,与WS_SIZEBOX风格相同

    WS_TILED

    产生一个层叠的窗口,一个层叠的窗口有一个标题和一个边框,与WS_OVERLAPPED风格相同

    WS_TILEDWINDOW

    相当于(WS_OVERLAPPED  | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)与WS_OVERLAPPEDWINDOW风格相同

    WS_VISIBLE

    创建一个初始状态为可见的窗口

    WS_VSCROLL

    创建一个有垂直滚动条的窗口

     

    返回值

    1、如果函数成功,返回值为新窗口的句柄

    2、如果函数失败,返回值为NULL

  • 相关阅读:
    POJ 1401 Factorial
    POJ 2407 Relatives(欧拉函数)
    POJ 1730 Perfect Pth Powers(唯一分解定理)
    POJ 2262 Goldbach's Conjecture(Eratosthenes筛法)
    POJ 2551 Ones
    POJ 1163 The Triangle
    POJ 3356 AGTC
    POJ 2192 Zipper
    POJ 1080 Human Gene Functions
    POJ 1159 Palindrome(最长公共子序列)
  • 原文地址:https://www.cnblogs.com/yzl050819/p/4383226.html
Copyright © 2011-2022 走看看