面向对象程序设计中的一些复杂数据结构

WNDCLASS

				typedef 
				struct _WNDCLASS { 
    UINT    style; 		//窗口类样式
    WNDPROC lpfnWndProc; 	//指向窗口函数的指针int     cbClsExtra; 	//分配在窗口类结构后的字节数int     cbWndExtra; 	//分配在窗口实例后的字节数
    HANDLE  hInstance; 		//定义窗口类的应用程序的实力句柄
    HICON   hIcon; 		//窗口类的图标
    HCURSOR hCursor; 		//窗口类的光标
    HBRUSH  hbrBackground; 	//窗口类的背景刷
    LPCTSTR lpszMenuName; 	//窗口类菜单资源
    LPCTSTR lpszClassName; 	//窗口类名
} WNDCLASS; 
 
 

Members

style
Specifies the class style(s). Styles can be combined by using the bitwise OR (|) operator. This member can be any combination of the following values:

Value
Action

CS_BYTEALIGNCLIENT
Aligns the window's client area on the byte boundary (in the x direction). This style affects the width of the window and its horizontal position on the display.

CS_BYTEALIGNWINDOW
Aligns a window on a byte boundary (in the x direction). This style affects the width of the window and its horizontal position on the display.

CS_CLASSDC
Allocates one device context to be shared by all windows in the class. Because window classes are process specific, it is possible for multiple threads of an application to create a window of the same class. It is also possible for the threads to attempt to use the device context simultaneously. When this happens, the system allows only one thread to successfully finish its drawing operation. For more information, see Device Contexts.

CS_DBLCLKS
Sends double-click messages to the window procedure when the user double-clicks the mouse while the cursor is within a window belonging to the class.

CS_GLOBALCLASS
Allows an application to create a window of the class regardless of the value of the hInstance parameter passed to the CreateWindow or CreateWindowEx function. If you do not specify this style, the hInstance parameter passed to the CreateWindow (or CreateWindowEx) function must be the same as the hInstance parameter passed to the RegisterClass function.

You can create a global class by creating the window class in a dynamic-link library (DLL) and listing the name of the DLL in the registry under the following keys:

HKEY_LOCAL_MACHINE\Software
\Microsoft\Windows NT\
CurrentVersion\Windows\AppInit_DLLs

Whenever a process starts, the system loads the specified DLLs in the context of the newly started process before calling the entry-point function in that process. The DLL must register the class during its initialization procedure and must specify the CS_GLOBALCLASS style.

CS_HREDRAW
Redraws the entire window if a movement or size adjustment changes the width of the client area.

CS_NOCLOSE
Disables Close on the window menu.

CS_OWNDC
Allocates a unique device context for each window in the class.

CS_PARENTDC
Sets the clipping region of the child window to that of the parent window so that the child can draw on the parent. A window with the CS_PARENTDC style bit receives a regular device context from the system's cache of device contexts. It does not give the child the parent's device context or device context settings. Specifying CS_PARENTDC enhances an application's performance. For more information, see Device Contexts.

CS_SAVEBITS
Saves, as a bitmap, the portion of the screen image obscured by a window. The system uses the saved bitmap to re-create the screen image when the window is removed. The system displays the bitmap at its original location and does not send WM_PAINT messages to windows obscured by the window if the memory used by the bitmap has not been discarded and if other screen actions have not invalidated the stored image. This style is useful for small windows (for example, menus or dialog boxes) that are displayed briefly and then removed before other screen activity takes place. This style increases the time required to display the window, because the system must first allocate memory to store the bitmap.

CS_VREDRAW
Redraws the entire window if a movement or size adjustment changes the height of the client area.

lpfnWndProc
Pointer to the window procedure. You must use the CallWindowProc function to call the window procedure. For more information, see WindowProc.
cbClsExtra
Specifies the number of extra bytes to allocate following the window-class structure. The system initializes the bytes to zero.
cbWndExtra
Specifies the number of extra bytes to allocate following the window instance. The system initializes the bytes to zero. If an application uses WNDCLASS to register a dialog box created by using the CLASS directive in the resource file, it must set this member to DLGWINDOWEXTRA.
hInstance
Handle to the instance that the window procedure of this class is within.
hIcon
Handle to the class icon. This member must be a handle of an icon resource. If this member is NULL, an application must draw an icon whenever the user minimizes the application's window.
hCursor
Handle to the class cursor. This member must be a handle of a cursor resource. If this member is NULL, an application must explicitly set the cursor shape whenever the mouse moves into the application's window.
hbrBackground
Handle to the class background brush. This member can be a handle to the physical brush to be used for painting the background, or it can be a color value. A color value must be one of the following standard system colors (the value 1 must be added to the chosen color). If a color value is given, you must convert it to one of the following HBRUSH types:

COLOR_ACTIVEBORDER
COLOR_ACTIVECAPTION
COLOR_APPWORKSPACE
COLOR_BACKGROUND
COLOR_BTNFACE
COLOR_BTNSHADOW
COLOR_BTNTEXT
COLOR_CAPTIONTEXT
COLOR_GRAYTEXT
COLOR_HIGHLIGHT
COLOR_HIGHLIGHTTEXT
COLOR_INACTIVEBORDER
COLOR_INACTIVECAPTION
COLOR_MENU
COLOR_MENUTEXT
COLOR_SCROLLBAR
COLOR_WINDOW
COLOR_WINDOWFRAME
COLOR_WINDOWTEXT

The system automatically deletes class background brushes when the class is freed. An application should not delete these brushes, because a class may be used by multiple instances of an application.

When this member is NULL, an application must paint its own background whenever it is requested to paint in its client area. To determine whether the background must be painted, an application can either process the WM_ERASEBKGND message or test the fErase member of the PAINTSTRUCT structure filled by the BeginPaint function.

lpszMenuName
Pointer to a null-terminated character string that specifies the resource name of the class menu, as the name appears in the resource file. If you use an integer to identify the menu, use the MAKEINTRESOURCE macro. If this member is NULL, windows belonging to this class have no default menu.
lpszClassName
Pointer to a null-terminated string or is an atom. If this parameter is an atom, it must be a global atom created by a previous call to the GlobalAddAtom function. The atom, a 16-bit value, must be in the low-order word of lpszClassName; the high-order word must be zero.

If lpszClassName is a string, it specifies the window class name.

MSG

The MSG structure contains message information from a thread's message queue.

 

				typedef 
				struct tagMSG {     // msg 
    HWND   hwnd;     
    UINT   message; 
    WPARAM wParam; 
    LPARAM lParam; 
    DWORD  time; 
    POINT  pt; 
} MSG;

Members

hwnd
Handle to the window whose window procedure receives the message.
message
Specifies the message number.
wParam
Specifies additional information about the message. The exact meaning depends on the value of the message member.
lParam
Specifies additional information about the message. The exact meaning depends on the value of the message member.
time
Specifies the time at which the message was posted.
pt
Specifies the cursor position, in screen coordinates, when the message was posted.

 

 

POINT Structure

The POINT data structure has the following form:

 

				typedef
				struct tagPOINT {
   LONG x;
   LONG y;
} POINT;

The POINT structure defines the x- and y-coordinates of a point.

Members

x

Specifies the x-coordinate of a point.

y

Specifies the y-coordinate of a point.

RECT Structure

The RECT data structure has the following form:

 

				typedef
				struct tagRECT {
   LONG left;
   LONG top;
   LONG right;
   LONG bottom;
} RECT;

The RECT structure defines the coordinates of the upper-left and lower-right corners of a rectangle.

Members

left

Specifies the x-coordinate of the upper-left corner of a rectangle.

top

Specifies the y-coordinate of the upper-left corner of a rectangle.

right

Specifies the x-coordinate of the lower-right corner of a rectangle.

bottom

Specifies the y-coordinate of the lower-right corner of a rectangle.

posted on 2006-12-11 14:34 bullGao 阅读(398) 评论(0)  编辑 收藏 引用 所属分类: VC++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2006年12月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

留言簿(1)

随笔分类

随笔档案

收藏夹

搜索

最新评论