(1)函数原型

 1 HWND CreateWindow(
2 LPCTSTR lpClassName, //pointer to register class name
3 LPCTSTR lpWindowName, //pointer to window name
4 DWORD dwstyle, //window style
5 int X, //horizontal position of window
6 int Y, //vertical positon of window
7 int nWidth, //window width
8 int nHeight, //window height
9 HWND hWndParent, //handle to parent or owner window
10 HMENU hMenu, //handle to menu or child-window identifier
11 HANDLE hInstance, //handle to application instance
12 LPVOID lpParam //pointer to window-creation data
13 }

(2)函数说明

该函数创建一个重叠式、弹出式窗口或子窗口。CreateWindow函数指定窗口类型、窗口标题、窗口样式和窗口的初始位置及大小(可选项)。CreateWindow函数还指定窗口的父窗口、拥有者窗口和窗口菜单。

对重叠式窗口、弹出式窗口和子窗口来讲,CreateWindow函数发送WM_CREATE、WM_GETMINMAXINFO和WM_NCCREATE消息给窗口。WM_CREATE消息的lParam参数包含一个指向CREATESTRUCT数据结构的指针。如果将窗口指定为WS_WISIBLE样式,CreateWindow函数将把为打开和显示此窗口所需要的所有消息发送给该窗口,以便打开和显示该窗口。如果窗口样式函数指定了标题条,则由lpWindowName参数指定的窗口标题将在标题条中显示。当使用CreateWindow创建如按钮、选中和正文等控件时,lpWindowName参数指定控件的正文。

CreateWindow函数即可用作宽字符函数,有可用作ANSI函数。

(3)参数说明

① lpClassName:指向一个以NULL为终止符的字符串,该串命名窗口类。类名可以是用RegisterClass函数注册的任何名字,或者是在下表中的任何预定义的控制类名。

<控件类名及其含义>

实际含义
BUTTON

一个小的矩形子窗口,该子窗口代表一个按钮,用户能通过鼠标单击来打开或关闭它。按钮控件可单独使用或成组使用,也可贴上文字标签,也可不包含文本。当用户用鼠标单击此按钮时,按钮控件常常要改变它的显示外观。

COMBOBOX

规定一个控件,该控件由类似与一个编辑控件和一个列表框的选择区域组成。列表框可一直显示,或由用户单击紧挨选择域的下拉图标来显示或隐藏。用户能否编辑选择域中的内容取决于组合框的方式。如果列表框是可见的,则键入到选择框中的内容将使列表框中与输入字符匹配的第1条列表框项变成高亮显示。相反,在列表框中选择一个项后,将在选择域中显示这个选择项。

EDIT

规定一个矩形子窗口。用户能在这个窗口通过键盘输入文字。用户选择控件后,输入焦点将赋给此控件,这可通过在此控件上按下鼠标键或用Tab键将输入该焦点移到此控件上来实现。当控件显示一个闪烁的插入字符时,用户就能输入文字。鼠标能用于移动光标和选择要替换的字符或者在插字符处定位光标。Backspace键能用来删除字符。编辑控件使用变宽字并显示ANSI字符,编译运行用以前Windows版本的应用程序,将显示不等宽字体的文字。应用程序还可发送WM_SETFONT消息给编辑控制,以便改变缺省字体。编辑控件把制表符按需要扩展成多个空格字符,以把光标移到下一个制表定位处。Tab的停止位置假定在第8个字符位置上。

LISTBOX

指定一个字符串表。应用程序在任何需要显示一个名字列表的时候(例如:用户查看和选择文件名)该控件将被使用。用户可通过鼠标单击选中一个串,此串被高亮显示,并且发送一个通知信息给父窗口。在列表框控件中,可使用垂直或水平的屏幕滚动条,以便在控件窗口中滚动超出列表框范围的列表项。列表框可根据需要自动地隐藏或显示屏幕滚动条。

MDICLIENT

指定一个MDI用户窗口。用户窗口接收控制MDI应用程序子窗口的消息。推荐方式为WS_CLIPCHIILDREN和WS_CHILD。应用程序可以使用WS_HSCROLL和WS_VSCROLL方式来创建一个允许用户滚动MDI子窗口的MDI用户窗。

RichEdit

指定一个RichEdit1.0控件,此控件可以查看和编辑文本,并且具有字符和段落功能。此控件还能够接纳COM对象。

指定一个RichEdit2.0控件

SCROLLBAR

指定一个滚动条矩形,此矩形两头有方向箭头,中间有翻阅块。每当用户在滚动条控件上按键时,滚动条就发送一个通知消息给它的父窗口。如果必要的话,父窗口负责修改翻阅块。滚动条控制与普通窗口中使用滚动条具有相同的外观并使用相同的函数。但与一般滚动条不同,滚动条控件能够定位在窗口中的任何位置上,并在任何需要为一个窗口提供滚动条输入时使用。

STATIC

指定“一个简单的正文域、框,或者可贴上标签的矩形、框,或分开其他控制的矩形”。静态空间无输入,也不提供输入。

② lpWindowName:指向一个以NULL为终止符的字符串,该字符串代表该窗口的名字。

③ dwStyle:指定所创建的窗口样式。它可以是下表中给出的任何方式的组合。

④ X:指定窗口初始的X位置。对于重叠式窗口或者弹出式窗口,X参数为窗口左上角初始的x坐标(在屏幕坐标系中)。

如果这个值是CW_USEDEFAULT,Windows为窗口左上角选择缺省的位置。对于一个子窗口,X是窗口在其父窗口的用户区域中

⑤ Y:指定

CreateWindow() -- 创建普通的窗口的更多相关文章

  1. win32手动创建windows窗口的,小记

    摘抄自文档,其中的函数需要以后花时间看 向 WinMain 添加功能 首先,在 WinMain 函数内部创建 WNDCLASSEX 类型的窗口类结构. 此结构包含有关窗口的信息,如应用程序图标.窗口的 ...

  2. win32 htmlayout点击按钮创建新窗口,以及按钮图片样式

    最近在做一个C++ win32的桌面图形程序,我不是C++程序员,做这个只是因为最近没什么java的活. windows api,之前接触的时候,还是大学,那时用这个开发打飞机游戏纯粹是娱乐.现在基本 ...

  3. CreateWindow创建无边框 可拉伸窗体

    createwindow 定义 HWND WINAPI CreateWindow( _In_opt_ LPCTSTR lpClassName, _In_opt_ LPCTSTR lpWindowNam ...

  4. Direct3D 12 创建windows窗口

    之前列出了计算机图形学的计划,现在开始这一阶段的学习,首先是Windows窗口的创建. 创建windows窗口 环境: 1. Visual Studio 2015 新建项目 创建工程项目完成,确定为窗 ...

  5. Duiib 创建不规则窗口(转载)

    方法一: 转载:http://blog.csdn.net/chenlycly/article/details/46447297 转载:http://blog.csdn.net/harvic880925 ...

  6. 转-JS子窗口创建父窗口操作父窗口

    Javascript弹出子窗口  可以通过多种方式实现,下面介绍几种方法 (1) 通过window对象的open()方法,open()方法将会产生一个新的window窗口对象 其用法为: window ...

  7. iOS 学习笔记 九 (2015.04.02)IOS8中使用UIAlertController创建警告窗口

    1.IOS8中使用UIAlertController创建警告窗口 #pragma mark - 只能在IOS8中使用的,警告窗口- (void)showOkayCancelAlert{    NSSt ...

  8. c创建win窗口

    windows程序设计示例: #include "windows.h" #pragma comment(lib, "winmm") LRESULT CALLBA ...

  9. opener 属性是一个可读可写的属性,可返回对创建该窗口的 Window 对象的引用

    opener 属性是一个可读可写的属性,可返回对创建该窗口的 Window 对象的引用

随机推荐

  1. 通过Z-Order技术加速Hudi大规模数据集分析方案

    1. 背景 多维分析是大数据分析的一个典型场景,这种分析一般带有过滤条件.对于此类查询,尤其是在高基字段的过滤查询,理论上只我们对原始数据做合理的布局,结合相关过滤条件,查询引擎可以过滤掉大量不相关数 ...

  2. vue keep-alive从列表页进入详情页,再返回列表页时,还是之前滚动的位置

    //router.js { path: '/oppo-music', component: () => import('@/views/OppoMusic.vue'), meta: { titl ...

  3. noip2007 总结

    统计数字 原题 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺 ...

  4. AI框架中图层IR的分析

    摘要:本文重点分析一下AI框架对IR有什么特殊的需求.业界有什么样的方案以及MindSpore的一些思考. 本文分享自华为云社区<MindSpore技术专栏 | AI框架中图层IR的分析> ...

  5. 垃圾处理器-CMS

    一.简介 CMS垃圾收集器是一款用于老年代的,使用复制-清除-整理算法的垃圾收集器. 二.GC阶段 1.初始化标记(STW) 暂停应用程序线程,遍历 GC ROOTS 直接可达的对象并将其压入标记栈( ...

  6. 第1章:Kubernetes 系统基础

    51.1.kubernetes介绍: 1.什么是kubernetes: (1)Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署.自动扩缩容.维护等功能. (2)使 ...

  7. 使用.net6 WebApplication打造最小API

    .net6在preview4时给我们带来了一个新的API:WebApplication,通过这个API我们可以打造更小的轻量级API服务.今天我们来尝试一下如何使用WebApplication设计一个 ...

  8. Linux基础 -03

    2.2.3 head-tail 命令 #------head #head pass #查看头部内容,默认前10行 #head -n5 pass #查看头部前5行,使用-n指定 #-------tail ...

  9. SpringBoot | 1.2 全注解下的Spring IoC

    前言 在学习SpringBoot之前,有几个Spring的重要的基础概念需要提一下,SpringBoot对这些基础概念做进一步的封装,完成自动配置.首先就是Spring的控制反转IOC,由于Sprin ...

  10. Network:java中文转byte出现负数问题

    字节的释义 字节(Byte) 是计算机信息技术用于计量存储容量的一种计量单位,通常情况下 1字节 = 8位(bit),也表示一些计算机编程语言中的数据类型和语言字符. 字符与字节 ASCII码:1个英 ...