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窗口程序 首 ...
随机推荐
- Remote 'attachhome' failed on nodes:XXX
RAC安装过程中,在安装GI的时候报如下错误: 解决方法: 根据提示执行以下脚本 $ /u01/app//grid/oui/bin/runInstaller -attachHome -noCluste ...
- ADF_ADF基本概要(汇总)
20150601 Created By BaoXinjian
- read/write函数与(非)阻塞I/O的概念
一.read/write 函数 read函数从打开的设备或文件中读取数据. #include <unistd.h> ssize_t read(int fd, void *buf, size ...
- Linux内核配置解析 - Boot options
1. 前言 本文将介绍ARM64架构下,Linux kernel和启动有关的配置项. 注1:本系列文章使用的Linux kernel版本是“X Project”所用的“Linux 4.6-rc5”,具 ...
- uploadify上传图片
1.实现源代码 <%@ page language="java" import="java.util.*" pageEncoding="UTF- ...
- 具体解释java中的volatilekeyword
一.为什么要有volatilekeyword 预计非常多java刚開始学习的人都被volatile这个keyword迷惑过.尽管网上有非常多讨论volatile的文章,但它们有的过于讲述底层原理,而没 ...
- Jquery定位插件,固定元素在页面某个位置,不随滚动条滚动
代码: (function ($) { "use strict"; $.fn.pin = function (options) { var scrollY = 0, element ...
- Apache优化:修改最大并发连接数(转)
Apache是一个跨平台的web服务器,由于其简单高效.稳定安全的特性,被广泛应用于计算机技术的各个领域.现在,Apache凭借其庞大的用户数,已成为用户数排名第一的web服务器. 尽 管如此,在实际 ...
- activiti 开发环境
1 javadocs 的11 个package org.activiti.engine,包含7个Service接口.异常定义.流程引擎.流程引擎配置和一些运行时异常类. org.activiti.en ...
- [svc]samba服务搭建
说实话搞这些很蛋疼, 没啥技术含量. What is Samba? 这个历史悠久了 Since 1992, Samba has provided secure, stable and fast fil ...