CreateWindow() -- 创建普通的窗口
(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() -- 创建普通的窗口的更多相关文章
- win32手动创建windows窗口的,小记
摘抄自文档,其中的函数需要以后花时间看 向 WinMain 添加功能 首先,在 WinMain 函数内部创建 WNDCLASSEX 类型的窗口类结构. 此结构包含有关窗口的信息,如应用程序图标.窗口的 ...
- win32 htmlayout点击按钮创建新窗口,以及按钮图片样式
最近在做一个C++ win32的桌面图形程序,我不是C++程序员,做这个只是因为最近没什么java的活. windows api,之前接触的时候,还是大学,那时用这个开发打飞机游戏纯粹是娱乐.现在基本 ...
- CreateWindow创建无边框 可拉伸窗体
createwindow 定义 HWND WINAPI CreateWindow( _In_opt_ LPCTSTR lpClassName, _In_opt_ LPCTSTR lpWindowNam ...
- Direct3D 12 创建windows窗口
之前列出了计算机图形学的计划,现在开始这一阶段的学习,首先是Windows窗口的创建. 创建windows窗口 环境: 1. Visual Studio 2015 新建项目 创建工程项目完成,确定为窗 ...
- Duiib 创建不规则窗口(转载)
方法一: 转载:http://blog.csdn.net/chenlycly/article/details/46447297 转载:http://blog.csdn.net/harvic880925 ...
- 转-JS子窗口创建父窗口操作父窗口
Javascript弹出子窗口 可以通过多种方式实现,下面介绍几种方法 (1) 通过window对象的open()方法,open()方法将会产生一个新的window窗口对象 其用法为: window ...
- iOS 学习笔记 九 (2015.04.02)IOS8中使用UIAlertController创建警告窗口
1.IOS8中使用UIAlertController创建警告窗口 #pragma mark - 只能在IOS8中使用的,警告窗口- (void)showOkayCancelAlert{ NSSt ...
- c创建win窗口
windows程序设计示例: #include "windows.h" #pragma comment(lib, "winmm") LRESULT CALLBA ...
- opener 属性是一个可读可写的属性,可返回对创建该窗口的 Window 对象的引用
opener 属性是一个可读可写的属性,可返回对创建该窗口的 Window 对象的引用
随机推荐
- ES6中的新特性:Iterables和iterators
目录 简介 什么是iteration Iterable对象 普通对象不是可遍历的 自定义iterables 关闭iterators 总结 简介 为了方便集合数据的遍历,在ES6中引入了一个iterat ...
- 【NX二次开发】体素特征相关函数(块、柱、锥、球)
NX Open允许用户创建和查询所有基本体素特征,通过API函数建立基本体素特征返回的是相应的特征标识,如果需要可以通过函数UG_MODL_ask_feat_body()获得特征对应的实体对象标识.基 ...
- 工具篇:介绍几个好用的guava工具类
前言 平时我们都会封装一些处理缓存或其他的小工具.但每个人都封装一次,重复造轮子,有点费时间.有没有一些好的工具库推荐-guava.guava是谷歌基于java封装好的开源库,它的性能.实用性,比我们 ...
- C++ folly库解读(三)Synchronized —— 比std::lock_guard/std::unique_lock更易用、功能更强大的同步机制
目录 传统同步方案的缺点 folly/Synchronized.h 简单使用 Synchronized的模板参数 withLock()/withRLock()/withWLock() -- 更易用的加 ...
- 在VScode 中使用RT-Thread Studio初体验
前言 工欲善其事,必先利其器,VScode是什么东东,想必大家都非常熟悉了,丰富的插件,有好的开发界面,是很多程序开发者的不二之选,RT-Thread竟然也开发了Vscode插件,真的是非常的nice ...
- 题解 P3233 [HNOI2014]世界树
题目传送门 解题思路 正解当然是虚树了. 首先对于原树以及虚树各开一个结构体存边,这个不用多说. 然后我们先 DFS 一遍,求出各个节点的时间戳,子树大小,深度以及父亲节点,并初始化倍增 LCA . ...
- 数据泵导出报错ORA-31693 ORA-02354 ORA-01466
1.Oracle数据泵导出schema时有报错: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - P ...
- Spring @Transaction 注解是如何执行事务的?
前言 相信小伙伴一定用过 @Transaction 注解,那 @Transaction 背后的秘密又知道多少呢? Spring 是如何开启事务的?又是如何进行提交事务和关闭事务的呢? 画图猜测 在开始 ...
- 使用Spring Data JPA 访问 Mysql 数据库-配置项
jpa操作数据库 注意:数据库采用的是本机数据库,下面是建表语句及初始化数据: SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------- ...
- Spring Boot Docker
1. IDEA中配置Docker Docker默认只接受本地客户端的请求,为了能够远程访问它,首先要开放Docker的监听端口,运行外部应用可以访问 修改 /lib/systemd/system/d ...