Window Styles



1.WNDCLASS structure。

typedef struct tagWNDCLASS {
  UINT      style;
  WNDPROC   lpfnWndProc;
  int       cbClsExtra;
  int       cbWndExtra;
  HINSTANCE hInstance;
  HICON     hIcon;
  HCURSOR   hCursor;
  HBRUSH    hbrBackground;
  LPCTSTR   lpszMenuName;
  LPCTSTR   lpszClassName;
} WNDCLASS, *PWNDCLASS;


style

Type: UINT

The class style(s). This member can be any combination of the Class Styles.

lpfnWndProc

Type: WNDPROC

A pointer to the window procedure. You must use the CallWindowProc function to call the window procedure. For more information, see WindowProc.

cbClsExtra

Type: int

The number of extra bytes to allocate following the window-class structure. The system initializes the bytes to zero.

cbWndExtra

Type: int

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

Type: HINSTANCE

A handle to the instance that contains the window procedure for the class.

hIcon

Type: HICON

A handle to the class icon. This member must be a handle to an icon resource. If this member is NULL, the system provides a default icon.

hCursor

Type: HCURSOR

A handle to the class cursor. This member must be a handle to 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

Type: HBRUSH

A 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 unregistered by using UnregisterClass. An application should not delete these brushes.

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

Type: LPCTSTR

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

Type: LPCTSTR

A pointer to a null-terminated string or is an atom. If this parameter is an atom, it must be a class atom created by a previous call to the RegisterClass or RegisterClassEx function. The atom 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. The class name can be any name registered with RegisterClass or RegisterClassEx, or any of the predefined control-class names.

The maximum length for lpszClassName is 256. If lpszClassName is greater than the maximum length, the RegisterClass function will fail.





2.The following are the window styles. After the window has been created, these styles cannot be modified, except as noted.

Constant/valueDescription
WS_BORDER 0x00800000L

The window has a thin-line border.

WS_CAPTION 0x00C00000L

The window has a title bar (includes the WS_BORDER style).

WS_CHILD 0x40000000L

The window is a child window. A window with this style cannot have a menu bar. This style cannot be used with theWS_POPUP style.

WS_CHILDWINDOW 0x40000000L

Same as the WS_CHILD style.

WS_CLIPCHILDREN 0x02000000L

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 0x04000000L

Clips child windows relative to each other; that is, when a particular child window receives aWM_PAINT message, the WS_CLIPSIBLINGS style clips all other overlapping child windows out of the region of the child window to be updated. IfWS_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 0x08000000L

The window is initially disabled. A disabled window cannot receive input from the user. To change this after a window has been created, use theEnableWindow function.

WS_DLGFRAME 0x00400000L

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 0x00020000L

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 theWS_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 theSetWindowLong function.

WS_HSCROLL 0x00100000L

The window has a horizontal scroll bar.

WS_ICONIC 0x20000000L

The window is initially minimized. Same as the WS_MINIMIZE style.

WS_MAXIMIZE 0x01000000L

The window is initially maximized.

WS_MAXIMIZEBOX 0x00010000L

The window has a maximize button. Cannot be combined with the WS_EX_CONTEXTHELP style. TheWS_SYSMENU style must also be specified.

WS_MINIMIZE 0x20000000L

The window is initially minimized. Same as the WS_ICONIC style.

WS_MINIMIZEBOX 0x00020000L

The window has a minimize button. Cannot be combined with the WS_EX_CONTEXTHELP style. TheWS_SYSMENU style must also be specified.

WS_OVERLAPPED 0x00000000L

The window is an overlapped window. An overlapped window has a title bar and a border. Same as theWS_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 0x80000000L

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 0x00040000L

The window has a sizing border. Same as the WS_THICKFRAME style.

WS_SYSMENU 0x00080000L

The window has a window menu on its title bar. The WS_CAPTION style must also be specified.

WS_TABSTOP 0x00010000L

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 theWS_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 theSetWindowLong function. For user-created windows and modeless dialogs to work with tab stops, alter the message loop to call theIsDialogMessage function.

WS_THICKFRAME 0x00040000L

The window has a sizing border. Same as the WS_SIZEBOX style.

WS_TILED 0x00000000L

The window is an overlapped window. An overlapped window has a title bar and a border. Same as theWS_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 0x10000000L

The window is initially visible.

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

WS_VSCROLL 0x00200000L

The window has a vertical scroll bar.

Requirements

Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]

Header

Winuser.h (include Windows.h)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值