Windows Function 中文字典

Lastest

[20110116_0800] : 最近发现 英文越读越顺, 这篇文章看来更新的要少了.


why i do this?

在使用中遇到很多函数.

本文翻译了这样的函数:  

1 MSDN中没有中文版介绍

2 百度百科中没有中文版

3 百度百科中有中文版但内容缺少很多,并且关键性内容不在, 非原文翻译. 

翻译下来记录在博客中, 中文版反复查看 速度快, 理解深.

Index

LockWindowUpdate Function

Window Class Styles

Window Styles


content

 

 Transforming a JPEG Image Without Loss of Information

'1  JPEG是有损图像, 当你解压JPEG文件再存储到另一个文件, 会发现质量明显下降了.
待续..
  

LockWindowUpdate Function

使指定窗口"可以"或"不可以进行绘制".   同一时间”只有一个窗口“被锁定.

Syntax

BOOL LockWindowUpdate(
  __in  HWND hWndLock
);

Parameters

Return Value

Remarks

函数目的是允许在一个窗口上拖/拽, 通过回调进行绘制, 而不受窗口变化的影响.
目的在于 绘制期间 窗口是锁定住不会变化的.
LockWindowUpdate 不是为了抑制窗口重画.  而 WM_SETREDRAW用来使个别窗口的重画失效.


如果应用程序的某个窗口被锁定, 调用 GetDCGetDCEx, or BeginPaint都将返回一个 空的设备环境.直到调用LockWindowUpdate参数为NULL.

 

当应用程序在锁定期间绘制窗口时, 系统将操作记录在一个绑定的矩形中. 当窗口解锁时, 系统使记录矩形区域无效, 强制发送WM_PAINT事件到被锁定窗口和它的子窗口. 如果锁定期间没有更新, 则不发送。


LockWindowUpdate 不使窗口invisible, 并且不清除WS_VISIBLE标识位.


被锁定窗口不能被移动.


Window Class Styles

Constant/value描述
CS_BYTEALIGNCLIENT
0x1000

字节单位对齐客户区(x轴方向).  这个类型影响窗口宽度 水平摆放位置.

CS_BYTEALIGNWINDOW
0x2000

字节单位对齐窗口(x轴方向).  这个类型影响窗口宽度 和 水平摆放位置.

CS_CLASSDC
0x0040

分配一个 设备环境 , 被 该窗口类中所有窗口分享.  因为 窗口类 是不同的, 

它一般用于一个 应用程序 有多个相同窗口类的多进程程序.  

他为 进程 视图同时操作一个设备环境而创建. 这时, 系统之允许一个进程成功的完成绘制操作. 

 多窗口共享 环境设备.

CS_DBLCLKS
0x0008

双击窗口时, 发送双击事件.  (注: 默认双击发送 1个单击1个双击?)

CS_DROPSHADOW
0x00020000

开启窗口阴影效果.  效果开关通过SPI_SETDROPSHADOW.  

通常, 被小的, 短生存期的窗口开启, 例如菜单, 用来强调它与其他窗口关系.

CS_GLOBALCLASS
0x4000

提示窗口类是一个全局类

For more information, 

see the "Application Global Classes" section of About Window Classes.

CS_HREDRAW
0x0002

重绘整个窗口, 当移动窗口或客户区横向大小变化时.

CS_NOCLOSE
0x0200

使标题栏上的关闭无效.

CS_OWNDC
0x0020

窗口中每个窗口 具有唯一环境句柄.

CS_PARENTDC
0x0080

设置 子窗口的 剪切矩形 为 父窗口大小, 使得 孩子窗口可以在父窗口上绘制. 

具有CS_PARENTDC属性的 窗口 接收 通常的设备句柄(来自系统缓存Cache的 设备环境). 

它不会将父亲的设备环境 或 设备环境参数 给孩子. 设置CS_PARENTDC 加强了 应用程序的性能. 

CS_SAVEBITS
0x0800

用bitmap保存被该类窗口遮掩的部分. 当窗口被移除, 系统使用存储的bimap来恢复屏幕图像, 

包括其他被遮住的窗口图像. 因此, 当内存中的bitmap没有被遮住时, 

系统不用发送WM_PAINT消息到被遮住的窗口进行重绘.

用于小的窗口(如菜单, 对话框)显示简单, then 在屏幕激活前移除.

会增加窗口显示时间, 因为系统必须在第一次为bitmap分配内存.  

一种遮挡关系的方法, 但会在第一次增加时间开销.

CS_VREDRAW
0x0001

重绘整个窗口, 当移动窗口或客户区纵向大小变化时.


Window Styles

Constant/valueDescription
WS_BORDER
0x00800000L

窗口使用 细线 框边.

WS_CAPTION
0x00C00000L

窗口使用标题栏 (includes the WS_BORDER style).

WS_CHILD
0x40000000L

作为子窗口. 该类型窗口不能使用 菜单栏.  不能是弹出窗口.

WS_CHILDWINDOW
0x40000000L

同上.

WS_CLIPCHILDREN
0x02000000L

父窗口重画时, 不包括被子窗口占据的部分. 用在创建父窗口时.

WS_CLIPSIBLINGS
0x04000000L

剪辑子窗口, 之间互相关联.  当一个子窗口收到WM_PAINT消息, 

会更新所有重叠的WS_CLIPSIBLINGS类型的其他子窗口.

 如果没设置WS_CLIPSIBLINGS并且子窗口有重叠,

  当在一个子窗口的客户去绘图时, 可能会绘制到邻居子窗口中.

WS_DISABLED
0x08000000L

窗口创建完是无效的. 不能接收用户输入. 在创建口可使其有效, 

使用EnableWindow function.

WS_DLGFRAME
0x00400000L

边框, 通常用在对话框.  这种窗口没有标题栏.

WS_GROUP
0x00020000L

窗口作为的第一个控件. 组包含第一个控件和所有之后定义的控件,

 直到下一个携带WS_GROUP的控件为止. 组中的第一个控件通常有WS_TABSTOP类,

 以至用户可以从一个组移动到另一个组.  用户可以用方向键 在控件见转移焦点.

可以开关该类型来改变对话框导航. 

To change this style after a window has been created, use the SetWindowLongfunction.

WS_HSCROLL
0x00100000L

纵向滚动条.

WS_ICONIC
0x20000000L

创建后最小化显示. Same as the WS_MINIMIZE style.

WS_MAXIMIZE
0x01000000L

创建后最大化显示

WS_MAXIMIZEBOX
0x00010000L

只有最大化. Cannot be combined with the WS_EX_CONTEXTHELP style. 系统栏必须被选中.

WS_MINIMIZE
0x20000000L

创建后最小化显示. Same as the WS_ICONIC style.

WS_MINIMIZEBOX
0x00020000L

只有最小化. Cannot be combined with the WS_EX_CONTEXTHELP style. 系统栏必须被选中.

WS_OVERLAPPED
0x00000000L

重叠窗口. 上层窗口有一个标题栏和边框. Same as the WS_TILED style.

WS_OVERLAPPEDWINDOW
(WS_OVERLAPPED 
| WS_CAPTION 
| WS_SYSMENU 
| WS_THICKFRAME 
| WS_MINIMIZEBOX 
| WS_MAXIMIZEBOX)

重叠窗口 Same as the WS_TILEDWINDOW style.

WS_POPUP
0x80000000L

弹出窗口空框. This style cannot be used with the WS_CHILD style.

WS_POPUPWINDOW
(WS_POPUP 
| WS_BORDER
 | WS_SYSMENU)

弹出窗口,有边框. WS_CAPTION | WS_POPUPWINDOW才有标题栏.

WS_SIZEBOX
0x00040000L

缩放边框. Same as the WS_THICKFRAME style.

WS_SYSMENU
0x00080000L

系统栏, 最大最小关闭. WS_CAPTION必须打开.(标题栏必须打开, 系统栏是标题栏右上角部分)

WS_TABSTOP
0x00010000L

窗口是一个控件, 可以接收键盘焦点, 当用户按TAB时. 按TAB改变键盘焦点到下一个WS_TABSTOP控件.

你可以开关这个类来改变对话框导航. 

To change this style after a window has been created, use the SetWindowLongfunction. 

For user-created windows and modeless dialogs to work with tab stops, alter the message loop to call the IsDialogMessage function.

WS_THICKFRAME
0x00040000L

缩放边框. Same as the WS_SIZEBOX style.

WS_TILED
0x00000000L

重叠窗口. 有标题栏和边框. Same as the WS_OVERLAPPED style.

WS_TILEDWINDOW
(WS_OVERLAPPED
 | WS_CAPTION 
| WS_SYSMENU
 | WS_THICKFRAME 
| WS_MINIMIZEBOX 
| WS_MAXIMIZEBOX)

重叠窗口.  Same as the WS_OVERLAPPEDWINDOW style.

WS_VISIBLE
0x10000000L

可见窗口

This style can be turned on and off by using the ShowWindow or SetWindowPos function.

WS_VSCROLL
0x00200000L

横向滚动条

posted on 2011-01-16 13:27  oleeceo  阅读(511)  评论(0)    收藏  举报

导航