编程-大神,CreateWindowExW函数该怎么写?

问题描述

大神,CreateWindowExW函数该怎么写?
#include
LRESULT CALLBACK WndProc(HWNDUINTWPARAMLPARAM);
int APIENTRY WinMain(HINSTANCE hInstanceHINSTANCE hPrevInstanceLPSTR lpCmdLineint nCmdShow)
{
WNDCLASS wndclass;
HWND hWnd;
MSG msg;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=LoadIcon(NULLIDI_APPLICATION);
wndclass.hCursor=LoadCursor(NULLIDC_ARROW);
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=TEXT(""window窗口创建"");
if(!RegisterClass(&wndclass))
return FALSE;
hWnd=CreateWindowExW(TEXT(""window窗口创建"")TEXT(""window窗口创建"")WS_OVERLAPPEDWINDOW
CW_USEDEFAULTCW_USEDEFAULTCW_USEDEFAULTCW_USEDEFAULTNULLNULLhInstanceNULL);
ShowWindow(hWndnCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&msgNULL00))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hWndUINT messageWPARAM wParamLPARAM lParam)
{
switch(message)
{
case WM_PAINT:HDC hdc;
PAINTSTRUCT ps;
hdc=BeginPaint(hWnd&ps);
TextOutW(hdc1020TEXT(""哈哈windows编程创建的窗口!"")28);
EndPaint(hWnd&ps);
return 0;
case WM_DESTROY:PostQuitMessage(0);
return 0;
}
return DefWindowProcW(hWndmessagewParamlParam);
}

能告诉我CreateWindowExW函数该怎么写吗?
HWND CreateWindowExW(DWORD dwExStyle LPCWSTR lpClassName LPCWSTR lpWindowName DWORD dwStyle int X int Y int nWidth int nHeight HWND hWndParent HMENU hMenu HINSTANCE hInstance LPVOID lpParam)

解决方案

这是MSDN中复制的,说的很详细:
CreateWindowEx
The CreateWindowEx function creates an overlapped pop-up or child window with an extended style; otherwise this function is identical to the CreateWindow function. For more information about creating a window and for full descriptions of the other parameters of CreateWindowEx see CreateWindow.

HWND CreateWindowEx(
DWORD dwExStyle // extended window style
LPCTSTR lpClassName // pointer to registered class name
LPCTSTR lpWindowName // pointer to window name
DWORD dwStyle // window style
int x // horizontal position of window
int y // vertical position of window
int nWidth // window width
int nHeight // window height
HWND hWndParent // handle to parent or owner window
HMENU hMenu // handle to menu or child-window identifier
HINSTANCE hInstance // handle to application instance
LPVOID lpParam // pointer to window-creation data
);

Parameters
dwExStyle
Specifies the extended style of the window. This parameter can be one of the following values: Style Meaning
WS_EX_ACCEPTFILES Specifies that a window created with this style accepts drag-drop files.
WS_EX_APPWINDOW Forces a top-level window onto the taskbar when the window is visible.

WS_EX_CLIENTEDGE Specifies that a window has a border with a sunken edge.
WS_EX_CONTEXTHELP Includes a question mark in the title bar of the window. When the user clicks the question mark the cursor changes to a question mark with a pointer. If the user then clicks a child window the child receives a WM_HELP message. The child window should pass the message to the parent window procedure which should call the WinHelp function using the HELP_WM_HELP command. The Help application displays a pop-up window that typically contains help for the child window.
WS_EX_CONTEXTHELP cannot be used with the WS_MAXIMIZEBOX or WS_MINIMIZEBOX styles.

WS_EX_CONTROLPARENT Allows the user to navigate among the child windows of the window by using the tab key.
WS_EX_DLGMODALFRAME Creates a window that has a double border; the window can optionally be created with a title bar by specifying the WS_CAPTION style in the dwStyle parameter.
WS_EX_LEFT Window has generic ""left-aligned"" properties. This is the default.
WS_EX_LEFTSCROLLBAR If the shell language is Hebrew Arabic or another language that supports reading order alignment the vertical scroll bar (if present) is to the left of the client area. For other languages the style is ignored and not treated as an error.
WS_EX_LTRREADING The window text is displayed using Left to Right reading-order properties. This is the default.
WS_EX_MDICHILD Creates an MDI child window.
WS_EX_NOPARENTNOTIFY Specifies that a child window created with this style does not send the WM_PARENTNOTIFY message to its parent window when it is created or destroyed.
WS_EX_OVERLAPPEDWINDOW Combines the WS_EX_CLIENTEDGE and WS_EX_WINDOWEDGE styles.
WS_EX_PALETTEWINDOW Combines the WS_EX_WINDOWEDGE WS_EX_TOOLWINDOW and WS_EX_TOPMOST styles.
WS_EX_RIGHT The window has generic ""right-aligned"" properties. This depends on the window class. This style has an effect only if the shell language is Hebrew Arabic or another language that supports reading order alignment; otherwise the style is ignored and not treated as an error.
WS_EX_RIGHTSCROLLBAR Vertical scroll bar (if present) is to the right of the client area. This is the default.
WS_EX_RTLREADING If the shell language is Hebrew Arabic or another language that supports reading order alignment the window text is displayed using Right to Left reading-order properties. For other languages the style is ignored and not treated as an error.
WS_EX_STATICEDGE Creates a window with a three-dimensional border style intended to be used for items that do not accept user input.
WS_EX_TOOLWINDOW Creates a tool window; that is a window intended to be used as a floating toolbar. A tool window has a title bar that is shorter than a normal title bar and the window title is drawn using a smaller font. A tool window does not appear in the taskbar or in the dialog that appears when the user presses alt+tab. If a tool window has a system menu its icon is not displayed on the title bar. However you can display the system menu by right-clicking or by typing alt+space.

WS_EX_TOPMOST Specifies that a window created with this style should be placed above all non-topmost windows and should stay above them even when the window is deactivated. To add or remove this style use the SetWindowPos function.
WS_EX_TRANSPARENT Specifies that a window created with this style should not be painted until siblings beneath the window (that were created by the same thread) have been painted. The window appears transparent because the bits of underlying sibling windows have already been painted.
To achieve transparency without these restrictions use theSetWindowRgn function.

WS_EX_WINDOWEDGE Specifies that a window has a border with a raised edge.

Using the WS_EX_RIGHT style for static or edit controls has the same effect as using the SS_RIGHT or ES_RIGHT style respectively. Using this style with button controls has the same effect as using BS_RIGHT and BS_RIGHTBUTTON styles.

lpClassName
Pointer to a null-terminated string or is an integer atom. If lpClassName is an atom it must be a global atom created by a previous call toGlobalAddAtom. The atom a 16-bit value less than 0xC000 must be in the low-order word of lpClassName; the high-order word must be zero.
If lpClassName is a string it specifies the window class name. The class name can be any name registered with the RegisterClassEx function or any of the predefined control-class names.

lpWindowName
Pointer to a null-terminated string that specifies the window name.
If the window style specifies a title bar the window title pointed to by lpWindowName is displayed in the title bar. When using CreateWindow to create controls such as buttons check boxes and static controls use lpWindowName to specify the text of the control.

dwStyle
Specifies the style of the window being created. This parameter can be a combination of the following window styles plus the control styles indicated in the Remarks section. Style Meaning
WS_BORDER Creates a window that has a thin-line border.
WS_CAPTION Creates a window that has a title bar (includes the WS_BORDER style).
WS_CHILD Creates a child window. 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 aWM_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 Creates a window that is initially disabled. A disabled window cannot receive input from the user.
WS_DLGFRAME Creates a window that has a border of a style typically used with dialog boxes. A window with this style cannot have a title bar.
WS_GROUP Specifies 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.
WS_HSCROLL Creates a window that has a horizontal scroll bar.
WS_ICONIC Creates a window that is initially minimized. Same as the WS_MINIMIZE style.
WS_MAXIMIZE Creates a window that is initially maximized.
WS_MAXIMIZEBOX Creates a window that has a Maximize button. Cannot be combined with the WS_EX_CONTEXTHELP style. The WS_SYSMENU style must also be specified.

WS_MINIMIZE Creates a window that is initially minimized. Same as the WS_ICONIC style.
WS_MINIMIZEBOX Creates a window that has a Minimize button. Cannot be combined with the WS_EX_CONTEXTHELP style. The WS_SYSMENU style must also be specified.

WS_OVERLAPPED Creates an overlapped window. An overlapped window has a title bar and a border. Same as the WS_TILED style.
WS_OVERLAPPEDWINDOW Creates an overlapped window with the WS_OVERLAPPED WS_CAPTION WS_SYSMENU WS_THICKFRAME WS_MINIMIZEBOX and WS_MAXIMIZEBOX styles. Same as the WS_TILEDWINDOW style.

WS_POPUP Creates a pop-up window. This style cannot be used with the WS_CHILD style.
WS_POPUPWINDOW Creates a pop-up window with WS_BORDER WS_POPUP and WS_SYSMENU styles. The WS_CAPTION and WS_POPUPWINDOW styles must be combined to make the window menu visible.
WS_SIZEBOX Creates a window that has a sizing border. Same as the WS_THICKFRAME style.
WS_SYSMENU Creates a window that has a window menu on its title bar. The WS_CAPTION style must also be specified.
WS_TABSTOP Specifies 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.
WS_THICKFRAME Creates a window that has a sizing border. Same as the WS_SIZEBOX style.
WS_TILED Creates an overlapped window. An overlapped window has a title bar and a border. Same as the WS_OVERLAPPED style.

WS_TILEDWINDOW Creates an overlapped window with the WS_OVERLAPPED WS_CAPTION WS_SYSMENU WS_THICKFRAME WS_MINIMIZEBOX and WS_MAXIMIZEBOX styles. Same as the WS_OVERLAPPEDWINDOW style.

WS_VISIBLE Creates a window that is initially visible.
WS_VSCROLL Creates a window that has a vertical scroll bar.

x
Specifies the initial horizontal position of the window. For an overlapped or pop-up window the x parameter is the initial x-coordinate of the window's upper-left corner in screen coordinates. For a child window x is the x-coordinate of the upper-left corner of the window relative to the upper-left corner of the parent window's client area.
If x is set to CW_USEDEFAULT the system selects the default position for the window's upper-left corner and ignores the y parameter. CW_USEDEFAULT is valid only for overlapped windows; if it is specified for a pop-up or child window the x and y parameters are set to zero.

y
Specifies the initial vertical position of the window. For an overlapped or pop-up window the y parameter is the initial y-coordinate of the window's upper-left corner in screen coordinates. For a child window y is the initial y-coordinate of the upper-left corner of the child window relative to the upper-left corner of the parent window's client area. For a list box y is the initial y-coordinate of the upper-left corner of the list box's client area relative to the upper-left corner of the parent window's client area.
If an overlapped window is created with the WS_VISIBLE style bit set and the x parameter is set to CW_USEDEFAULT the system ignores the y parameter.

nWidth
Specifies the width in device units of the window. For overlapped windows nWidth is the window's width in screen coordinates or CW_USEDEFAULT. If nWidth is CW_USEDEFAULT the system selects a default width and height for the window; the default width extends from the initial x-coordinates to the right edge of the screen; the default height extends from the initial y-coordinate to the top of the icon area. CW_USEDEFAULT is valid only for overlapped windows; if CW_USEDEFAULT is specified for a pop-up or child window the nWidth and nHeight parameter are set to zero.
nHeight
Specifies the height in device units of the window. For overlapped windows nHeight is the window's height in screen coordinates. If the nWidth parameter is set to CW_USEDEFAULT the system ignores nHeight.
hWndParent
Handle to the parent or owner window of the window being created. To create a child window or an owned window supply a valid window handle. This parameter is optional for pop-up windows.
Windows NT 5.0 and later: To create a message-only window supply HWND_MESSAGE or a handle to an existing message-only window.

hMenu
Handle to a menu or specifies a child-window identifier depending on the window style. For an overlapped or pop-up window hMenu identifies the menu to be used with the window; it can be NULL if the class menu is to be used. For a child window hMenu specifies the child-window identifier an integer value used by a dialog box control to notify its parent about events. The application determines the child-window identifier; it must be unique for all child windows with the same parent window.
hInstance
Handle to the instance of the module to be associated with the window.
lpParam
A pointer to a value to be passed to the window through the CREATESTRUCT structure passed in the lParam parameter the WM_CREATE message. If an application calls CreateWindow to create a multiple document interface (MDI) client window lpParam must point to a CLIENTCREATESTRUCT structure.
Return Values
If the function succeeds the return value is a handle to the new window.

If the function fails the return value is NULL. To get extended error information callGetLastError.

Remarks
The CreateWindowEx function sends WM_NCCREATE WM_NCCALCSIZE and WM_CREATE messages to the window being created.

For information on controlling whether the Taskbar displays a button for the created window seeVisibility of Taskbar Buttons.

The following predefined control classes can be specified in the lpClassName parameter. Note the corresponding control styles you can use in the dwStyle parameter.

Class Meaning
BUTTON Designates a small rectangular child window that represents a button the user can click to turn it on or off. Button controls can be used alone or in groups and they can either be labeled or appear without text. Button controls typically change appearance when the user clicks them. For more information see Buttons.

For a table of the button styles you can specify in the dwStyle parameter see Button Styles.

COMBOBOX Designates a control consisting of a list box and a selection field similar to an edit control. When using this style an application should either display the list box at all times or enable a drop-down list box. If the list box is visible typing characters into the selection field highlights the first list box entry that matches the characters typed. Conversely selecting an item in the list box displays the selected text in the selection field. For more information see Combo Boxes.

For a table of the combo box styles you can specify in the dwStyle parameter see Combo Box Styles.

EDIT Designates a rectangular child window into which the user can type text from the keyboard. The user selects the control and gives it the keyboard focus by clicking it or moving to it by pressing the tab key. The user can type text when the edit control displays a flashing caret; use the mouse to move the cursor select characters to be replaced or position the cursor for inserting characters; or use the backspace key to delete characters. For more information see Edit Controls.

For a table of the edit control styles you can specify in the dwStyle parameter see Edit Control Styles.

LISTBOX Designates a list of character strings. Specify this control whenever an application must present a list of names such as filenames from which the user can choose. The user can select a string by clicking it. A selected string is highlighted and a notification message is passed to the parent window. For more information see List Boxes.

For a table of the list box styles you can specify in the dwStyle parameter see List Box Styles.

MDICLIENT Designates an MDI client window. This window receives messages that control the MDI application's child windows. The recommended style bits are WS_CLIPCHILDREN and WS_CHILD. Specify the WS_HSCROLL and WS_VSCROLL styles to create an MDI client window that allows the user to scroll MDI child windows into view. For more information see Multiple Document Interface.

RichEdit Designates a Rich Edit version 1.0 control. This window lets the user view and edit text with character and paragraph formatting and can include embedded COM objects. For more information see Rich Edit Controls.

For a table of the rich edit control styles you can specify in the dwStyle parameter see Rich Edit Control Styles.

RICHEDIT_CLASS Designates a Rich Edit version 2.0 control. This controls let the user view and edit text with character and paragraph formatting and can include embedded COM objects. For more information see Rich Edit Controls.

For a table of the rich edit control styles you can specify in the dwStyle parameter see Rich Edit Control Styles.

SCROLLBAR Designates a rectangle that contains a scroll box and has direction arrows at both ends. The scroll bar sends a notification message to its parent window whenever the user clicks the control. The parent window is responsible for updating the position of the scroll box if necessary. For more information see Scroll Bars.

For a table of the scroll bar control styles you can specify in the dwStyle parameter see Scroll Bar Control Styles.

STATIC Designates a simple text field box or rectangle used to label box or separate other controls. Static controls take no input and provide no output. For more information see Static Controls.

For a table of the static control styles you can specify in the dwStyle parameter see Static Control Styles.

Windows 95: The system can support a maximum of 16364 window handles.

Windows CE: Windows CE does not support stand alone menu bars. The hMenu parameter must be NULL unless it is used as a child-window identifier.

Windows CE versions 2.0 and later support the following two extended window styles:

WS_EX_NOACTIVATE
A top level window created with this style cannot be activated. If a child window has this style tapping it will not cause its top-level parent to be activated. A window that has this style will receive stylus events but neither it nor its child windows can get the focus.
WS_EX_NOANIMATION
A window created with this style does not show animated exploding and imploding rectangles and does not have a button on the taskbar.
The following dwExStyle flags are not supported.

WS_EX_ACCEPTFILES WS_EX_LEFTSCROLLBAR
WS_EX_LEFT WS_EX_MDICHILD
WS_EX_LTRREADING WS_EX_PALETTEWINDOW
WS_EX_NOPARENTNOTIFY WS_EX_RIGHTSCROLLBAR
WS_EX_RIGHT WS_EX_TOOLWINDOW
WS_EX_RTLREADING WS_EX_TRANSPARENT
WS_EX_APPWINDOW

Windows CE 1.0 does not support the WS_EX_TOPMOST style. Versions 2.0 and later do.

The following dwStyle flags are not supported.

WS_CHILDWINDOW WS_ICONIC
WS_MAXIMIZE WS_MAXIMIZEBOX
WS_MINIMIZE WS_MINIMIZEBOX
WS_OVERLAPPEDWINDOW WS_POPUPWINDOW
WS_SIZEBOX WS_THICKFRAME
WS_TILED WS_TILEDWINDOW

All windows implicitly have the WS_CLIPSIBLINGS and WS_CLIPCHILDREN styles.

Windows CE 1.0 does not support owned windows except for dialog boxes. If the hwndParent parameter is not NULL the window is implicitly given the WS_CHILD style.

解决方案二:
CreateWindowExW是一个操作系统的API函数,不用你去实现了。假如已经#include 的话,带入参数直接调用它就可以创建一个窗口了。最好能下载一个MSDN离线帮助,便于你查看。
具体的你可以在百度百科搜索一下“CreateWindowEx”。

解决方案三:
http://blog.csdn.net/rl529014/article/details/46833427,这是我的博客,里面讲解了MFC创建窗口的过程,可以去看看,

解决方案四:
函数的使用就不要去纠结了,下载一个MSDN,需要用的时候去查看就行了

解决方案五:
感觉合适的话记得采纳哦

时间: 2024-10-17 23:18:51

编程-大神,CreateWindowExW函数该怎么写?的相关文章

android开发-请问里面 的strResult如何给主线程用啊,求大神解答,最好简单写下代码

问题描述 请问里面 的strResult如何给主线程用啊,求大神解答,最好简单写下代码 new Thread(new Runnable() { @Override public void run() { Looper.prepare(); // TODO Auto-generated method stub String path = "http://www.shopmanage.com/landlady/spm"; // String path = "http://221.

基3fft-求大神帮忙看看,我写的基3蝶形运算程序到底哪里错了?

问题描述 求大神帮忙看看,我写的基3蝶形运算程序到底哪里错了? ![CSDN移动问答][1] function [Xk,N]=JISAN(xn,L) M=0; while L>1 M=M+1; L=fix(L/3); end N=3^M; for m=0:2*(N/3-1); Wn(m+1)=exp(-1j*2*pi*m/N); W1=exp(-1j*2*pi/3);W2=exp(-1j*4*pi/3); end A=xn; I=0; for Q=0:9:N-10; for J=0:2; for

图片-各位大神,这里应该怎么写

问题描述 各位大神,这里应该怎么写 mGirdView.setAdapter(mImgAdapter);下面是ImageAdapter代码 public class ImageAdapter extends BaseAdapter { private static Set mSeletedImg = new HashSet(); private String mDirPath; private ListmImgPaths; private LayoutInflater mInflater; pu

遇到一个棘手的问题,需要java网络编程大神帮忙解答下~

问题描述 遇到一个棘手的问题,需要java网络编程大神帮忙解答下~ 问题是这样的: 我把MINA核心的非阻塞轮训方式的的代码用JDK7的AIO异步IO替换了,现在已经包装完成,测试的时候遇到两个问题: 测试的是这样的,服务端启动后20秒后释放所有资源关闭,客户端启动15秒后释放所有资源关闭,大部分情况下测试都是正常的,但是偶尔会出现客户端服务端都关闭后,再次启动服务的过程后,要么服务端抛出AsynchronousCloseException,客户端抛出远程主机强迫关闭一个现有连接:要么是客户端的

原始套接字-VPN到底是什么东西,有几个问题请教一下网络编程大神

问题描述 VPN到底是什么东西,有几个问题请教一下网络编程大神 1.有人说VPN能把系统的所有流量代理走,那么包不包括使用RAW Socket(原始套接字)发送的链路层数据帧呢? 2.VPN究竟是什么鬼?那PPTP协议是什么鬼?我能用原始套接字模拟PPTP连接吗,PPTP协议到底是什么协议,百度上有人说PPTP是第二层协议,那不就是链路层协议吗,还有人说PPTP基于TCP,我也是醉了.请问有没有关于VPN协议的书籍? 解决方案 vpn工作在ip层,RAW Socket的包不能保留,必须做修改,对

求java大神指教这个程序怎么写,最好有代码

问题描述 求java大神指教这个程序怎么写,最好有代码 小区里新开了一家超市,经营了一个月之后,发现超市的经营很混乱,主要体现在几个方面:不知道商店现在都有什么货物,也不知道商店每天都卖了什么货物,库存有什么货物:同时,一个月来的流水和利润都无法查清.为此超市张老板找到了程序员Jack,想让Jack开发一个管理程序,帮助超市的经营.Jack的初步计划是这样的:1. 设计程序的结构,看看大概需要什么样式的类.2. 初步构想是这样的:a) 货物要有相应的类和货物的属性:b) 然后商店平常要进货和销货

数据库- 各位大神好,我要做一个类似QQ空间访问量的功能,请问各位大神,后台代码怎样写才是最高效的

问题描述 各位大神好,我要做一个类似QQ空间访问量的功能,请问各位大神,后台代码怎样写才是最高效的 各位大神好,我要做一个类似QQ空间访问量的功能,请问各位大神,后台代码怎样写才是最高效的,不能随时更新数据库,这样访问量大的话会造成很大负担,想问问现在普遍的做法,或者比较好的方法有哪些,谢谢各位了 解决方案 先学会"走",再考虑"跑".也许你想一下子就有一个"最高效"的设计.其实不是,没有放之四海而皆准的设计,你从简单,一般的设计到优化的,特殊的

c-有没有大神帮看下鄙人写的高斯完全主元素消元法代码哪里出了问题,真心感谢啊!

问题描述 有没有大神帮看下鄙人写的高斯完全主元素消元法代码哪里出了问题,真心感谢啊! /*矩阵A用于存放线性方程组的增广矩阵,向量X表示线性方程组的解 #include #include int main() { double m,p,A[10][10],X[10]; int n,i,j,k,q,l,c,w; char a; printf("请输入方程的阶数(小于等于8):n"); scanf("%d",&n); for(i=1;i<=n;i++)//

sql-求大神指导SQL语句怎么写

问题描述 求大神指导SQL语句怎么写 建立了一张活动表 actid int primary key identity(1,1), actname varchar(50) not null, actshort varchar(200) not null, actlong varchar(1000) not null, actaddress varchar(100) not null, actgoway varchar(200) not null, volshort varchar(100), vo