Windoows窗口程序二
WNDCLASS属性style取值:
CS_GLOBALCLASS--应用程序全局窗口类
CS_BYTEALIGNCLIENT--窗口客户区的水平位置8倍数对齐
CS_BYTEALIGNWINDOW--窗口的水平位置8倍数对齐
CS_HREDRAW--当窗口水平变化时,窗口重新绘制
CS_VREDRAW--当窗口垂直变化时,窗口重新绘制
CS_CLASSDC--该类型的窗口,都是有同一个绘图(DC)设备
CS_PARENTDC--该类型的窗口,使用他的父窗口的绘图(DC)设备
CS_OWNDC--该类型的窗口,每个窗口都使用自己的绘图(DC)设备
CS_SAVEBITS--允许窗口保存成图(位图),提高窗口的绘图效率,但是耗费内存资源
CS_DBLCLKS--允许窗口接收鼠标左键双击
CS_NOCLOSE--窗口没有关闭按钮
CreateWindow实现原理
.系统根据传入的窗口类名称,在应用程序局部窗口类中查找,如果找到执行步骤2,如果未找到,执行步骤3;
.比较局部窗口类与创建窗口时传入的HINSTANCE变量,如果发现相等,创建和注册窗口类在同一模块,创建窗口返回,如果不相等,继续执行步骤3;
.在应用程序全局窗口类,如果找到,执行步骤4,如果未找到执行步骤5
.使用找到的窗口类的信息,创建窗口返回。
.在系统窗口类中查找,如果找到创建窗口返回,否则创建窗口失败。
HWND CreateWindowEx(
DWORD dwExStyle,//窗口的扩展风格
LPCTSTR lpClassName,//已经注册的窗口类名称
LPCTSTR lpWindowName,//窗口标题栏名字
DWORD dwStyle,//窗口的基本风格
int x,//窗口左上角水平坐标位置
int y,//窗口左上角垂直坐标位置
int nWidth,//窗口的宽度
int nHeight,//窗口的高度
HWND hWndParent,//窗口的父窗口句柄
HMENU hMenu,//窗口菜单句柄
HINSTANCE hInstance,//应用程序实例句柄
LPVOID lpParam//窗口创建时附加参数
);创建成功返回窗口句柄
WS_BORDER--The window has a thin-line border.(主体与边框间存在黑色边界线) WS_CAPTION--The window has a title bar (includes the WS_BORDER style).(标题栏风格) WS_CHILD--The window is a child window. A window with this style cannot have a menu bar.
This style cannot be used with the WS_POPUP style.(子窗口风格-子窗口必须使用该风格,并且父窗口句柄必须有值) WS_CHILDWINDOW--Same as the WS_CHILD style. WS_CLIPCHILDREN--Excludes the area occupied by child windows when drawing occurs within the parent window.
This style is used when creating the parent window.(切割窗口) WS_CLIPSIBLINGS--Clips child windows relative to each other; that is, when a particular child window receives a WM_PAINT message,
the WS_CLIPSIBLINGS style clips all other overlapping child windows out of the region of the child window to be updated.
If WS_CLIPSIBLINGS is not specified and child windows overlap, it is possible, when drawing within the client area of a child window,
to draw within the client area of a neighboring child window.(切割窗口) WS_DISABLED--The window is initially disabled. A disabled window cannot receive input from the user.
To change this after a window has been created, use the EnableWindow function.(窗口不可用) WS_DLGFRAME--The window has a border of a style typically used with dialog boxes. A window with this style cannot have a title bar.(对话框) WS_GROUP--The window is the first control of a group of controls. The group consists of this first control and all controls defined after it,
up to the next control with the WS_GROUP style.
The first control in each group usually has the WS_TABSTOP style so that the user can move from group to group.
The user can subsequently change the keyboard focus from one control in the group to the next control in the group by using the direction keys.
You can turn this style on and off to change dialog box navigation.
To change this style after a window has been created, use the SetWindowLong function.(分组风格,两窗口互斥,类似于单选框) WS_HSCROLL--The window has a horizontal scroll bar.(水平滚动条) WS_ICONIC--The window is initially minimized. Same as the WS_MINIMIZE style.(窗口创建出来,处于最小化状态) WS_MAXIMIZE--The window is initially maximized.(窗口创建出来,处于最大化状态) WS_MAXIMIZEBOX--The window has a maximize button. Cannot be combined with the WS_EX_CONTEXTHELP style.
The WS_SYSMENU style must also be specified.(窗口有最大化按钮) WS_MINIMIZE--The window is initially minimized. Same as the WS_ICONIC style. WS_MINIMIZEBOX--The window has a minimize button. Cannot be combined with the WS_EX_CONTEXTHELP style.
The WS_SYSMENU style must also be specified.(窗口有最小化按钮) WS_OVERLAPPED--The window is an overlapped window. An overlapped window has a title bar and a border. Same as the WS_TILED style.(交叠窗口) WS_OVERLAPPEDWINDOW
(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
The window is an overlapped window. Same as the WS_TILEDWINDOW style. WS_POPUP--The windows is a pop-up window. This style cannot be used with the WS_CHILD style.(弹出对话框风格) WS_POPUPWINDOW
(WS_POPUP | WS_BORDER | WS_SYSMENU)
The window is a pop-up window. The WS_CAPTION and WS_POPUPWINDOW styles must be combined to make the window menu visible.(弹出对话框风格) WS_SIZEBOX--The window has a sizing border. Same as the WS_THICKFRAME style.(可改变窗口大小的边框) WS_SYSMENU--The window has a window menu on its title bar. The WS_CAPTION style must also be specified.(系统菜单) WS_TABSTOP
The window is a control that can receive the keyboard focus when the user presses the TAB key.
Pressing the TAB key changes the keyboard focus to the next control with the WS_TABSTOP style.
You can turn this style on and off to change dialog box navigation.
To change this style after a window has been created, use the SetWindowLong function.
For user-created windows and modeless dialogs to work with tab stops, alter the message loop to call the IsDialogMessage function.(可以用tab键切换) WS_THICKFRAME--The window has a sizing border. Same as the WS_SIZEBOX style. WS_TILED--The window is an overlapped window. An overlapped window has a title bar and a border. Same as the WS_OVERLAPPED style. WS_TILEDWINDOW
(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
The window is an overlapped window. Same as the WS_OVERLAPPEDWINDOW style. WS_VISIBLE
The window is initially visible.
This style can be turned on and off by using the ShowWindow or SetWindowPos function.(显示窗口,一般应用于子窗口) WS_VSCROLL--The window has a vertical scroll bar.(垂直滚动条窗口)
Windoows窗口程序二的更多相关文章
- Windoows窗口程序五
程序执行机制 过程驱动-程序的执行过程是按照预订好的顺序执行. 事件驱动-程序的执行是无序,用户可以根据需要随机触发相应的事件. Win32窗口程序就是采用事件驱动方式执行,也就是消息机制. 当系统通 ...
- Windoows窗口程序一
编写窗口程序的步骤: .定义WinMain入口函数 .定义窗口处理函数(处理消息)WindowProc .注册窗口类RegisterClass .创建窗口(在内存中创建窗口)CreateWindow ...
- Windoows窗口程序七
WM_QUIT--用于结束消息循环处理 wParam - PostQuitMessage函数传递的参数 lParam - 不使用 当GetMessage收到这个消息后,会返回false,结束while ...
- Windoows窗口程序六
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...
- Windoows窗口程序四
子窗口的创建 .创建时要设置父窗口句柄 .创建风格要增加WS_CHILD|WS_VISIBLE HWND CreateChild(LPSTR lpClassName,LPSTR lpWndName,H ...
- Windoows窗口程序三
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h& ...
- Windows程序设计笔记(二) 关于编写简单窗口程序中的几点疑惑
在编写窗口程序时主要是5个步骤,创建窗口类.注册窗口类.创建窗口.显示窗口.消息环的编写.对于这5个步骤为何要这样写,当初我不是太理解,学习到现在有些问题我基本上已经找到了答案,同时对于Windows ...
- QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数
QT源码解析(一) QT创建窗口程序.消息循环和WinMain函数 分类: QT2009-10-28 13:33 17695人阅读 评论(13) 收藏 举报 qtapplicationwindowse ...
- 32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数
32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数 (如果想看所有代码,请下载课堂资料,里面有所有代码,这里会讲解怎么生成一个窗口程序) 一丶32位汇编编写Windows窗口程序 首 ...
随机推荐
- 打开u盘时提示是否要将其格式化的提示
早上打开电脑插入U盘后,发现U盘报以下错误:(心中一紧,昨晚写的文档还在其中呢) 修复方法: Win+R 输入cmd 打开 ,执行命令 chkdsk G: /f 其中G为损坏区域所在盘符,即U盘在电脑 ...
- AR_销售订单收款基本操作(流程)
2014-06-04 Created By BaoXinjian
- Python 列表 count() 方法
描述 Python 列表 count() 方法用于统计某个元素在列表中出现的次数. 语法 count() 方法语法: L.count(obj) 参数 obj -- 列表中统计的对象. 返回值 返回元素 ...
- 使用和学习 ES2015
调试网站 http://babeljs.io/repl/ 扩展阅读: # export.exports.modules.exports 和 require .import 的一些常用方法和套路 htt ...
- mysqlbackup 重建带有gtid特性的slave
一.mysqlbackup简介: mysqlbackup是mysql的一个企业级备份工具,优点就是牛逼,缺点就是这东西要钱买. 二.gtid 特性简介: gtid 的中文名叫全局事务ID,也就是说每一 ...
- MATLAB(4)——图片保存方法汇总及常用指令
作者:桂. 时间:2017-03-03 19:30:03 链接:http://www.cnblogs.com/xingshansi/p/6498318.html 前言 本文为MATLAB系列第四篇. ...
- How to install Mysql in the CentOS
This article will walk through you the process of installing and updating latest MySQL 5.7.9 version ...
- Java:HttpClient篇,HttpClient4.2在Java中的几则应用:Get、Post参数、Session(会话)保持、Proxy(代理服务器)设置,多线程设置...
新版HttpClient4.2与之前的3.x版本有了很大变化,建议从http://hc.apache.org/处以得到最新的信息. 关于HttpCore与HttpClient:HttpCore是位于H ...
- CSDN日报20170403 ——《该不该离职?它说了算!》
[程序人生]该不该离职?它说了算! 作者:安晓辉 我在加油站工作,月薪扣除五险一金2000多.工作时间长,上班48小时歇息8小时. 今年单位改革把我们都外包出去了,承包人对我各种苛刻要求.有心辞职去干 ...
- JS教程:window.location使用方法的区别
介绍了window.location使用方法的区别. window.location.href=&http://www.jbxue.com/javascript/ldquo;url”:改变ur ...