`
胡火云
  • 浏览: 44535 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

CreateWindow函数

阅读更多
CreateWindow介绍:
该函数创建一个重叠式窗口、弹出式窗口或子窗口。它指定窗口类,窗口标题,窗口风格,以及窗口的初始位置及大小(可选的)。函数也指该窗口的父窗口或所属窗口(如果存在的话),及窗口的菜单。若要使用除CreateWindow函数支持的风格外的扩展风格,则使用CreateWindowEx函数代替CreateWindow函数


函数原型
  HWND CreateWindow(   LPCTSTR lpClassName,   LPCTSTR lpWindowName,   DWORD dwStyle,   int x,   int y,   int nWidth,   int nHeight,   HWND hWndParent,   HMENU hMenu,   HANDLE hlnstance,   LPVOID lpParam);
编辑本段参数
lpClassName
  指向一个空结束的字符串或整型数atom。如果该参数是一个整型量,它是由此前调用theGlobalAddAtom函数产生的全局量。这个小于0xC000的16位数必须是lpClassName参数字的低16位,该参数的高位必须是0。   如果lpClassName是一个字符串,它指定了窗口的类名。这个类名可以是任何用函数RegisterClassEx注册的类名,或是任何预定义的控制类名。请看说明部分的列表。
LPWindowName
  指向一个指定窗口名的空结束的字符串指针。   如果窗口风格指定了标题条,由lpWindowName指向的窗口标题将显示在标题条上。当使用Createwindow函数来创建控制例如按钮,选择框和静态控制时,可使用lpWindowName来指定控制文本。
dwStyle
  指定创建窗口的风格。该参数可以是下列窗口风格的组合再加上说明部分的控制风格。风格意义:   WS_BORDER:创建一个单边框的窗口。   WS_CAPTION:创建一个有标题框的窗口(包括WS_BODER风格)。   WS_CHILD:创建一个子窗口。这个风格不能与WS_POPUP风格合用。   WS_CHLDWINDOW:与WS_CHILD相同。   WS_CLIPCHILDREN:当在父窗口内绘图时,排除子窗口区域。在创建父窗口时使用这个风格。   WS_CLlPBLINGS;排除子窗口之间的相对区域,也就是,当一个特定的窗口接收到WM_PAINT消息时,WS_CLIPSIBLINGS 风格将所有层叠窗口排除在绘图之外,只重绘指定的子窗口。如果未指定WS_CLIPSIBLINGS风格,并且子窗口是层叠的,则在重绘子窗口的客户区时,就会重绘邻近的子窗口。   WS_DISABLED:创建一个初始状态为禁止的子窗口。一个禁止状态的窗口不能接受来自用户的输入信息。   WS_DLGFRAME:创建一个带对话框边框风格的窗口。这种风格的窗口不能带标题条。   WS_GROUP:指定一组控制的第一个控制。这个控制组由第一个控制和随后定义的控制组成,自第二个控制开始每个控制,具有WS_GROUP风格,每个组的第一个控制带有WS_TABSTOP风格,从而使用户可以在组间移动。用户随后可以使用光标在组内的控制间改变键盘焦点。   WS_HSCROLL:创建一个有水平滚动条的窗口。   WS_ICONIC:创建一个初始状态为最小化状态的窗口。与WS_MINIMIZE风格相同。   WS_MAXIMIZE:创建一个初始状态为最大化状态的窗口。   WS_MAXIMIZEBOX:创建一个具有最大化按钮的窗口。该风格不能与WS_EX_CONTEXTHELP风格同时出现,同时必须指定WS_SYSMENU风格。   WS_OVERLAPPED:产生一个层叠的窗口。一个层叠的窗口有一个标题条和一个边框。与WS_TILED风格相同。   WS_OVERLAPPEDWINDOW:创建一个具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX风格的层叠窗口,与WS_TILEDWINDOW风格相同。   WS_POPUP;创建一个弹出式窗口。该风格不能与WS_CHLD风格同时使用。   WS_POPUWINDOW:创建一个具有WS_BORDER,WS_POPUP,WS_SYSMENU风格的窗口,WS_CAPTION和WS_POPUPWINDOW必须同时设定才能使窗口某单可见。   WS_SIZEBOX:创建一个可调边框的窗口,与WS_THICKFRAME风格相同。   WS_SYSMENU:创建一个在标题条上带有窗口菜单的窗口,必须同时设定WS_CAPTION风格。   WS_TABSTOP:创建一个控制,这个控制在用户按下Tab键时可以获得键盘焦点。按下Tab键后使键盘焦点转移到下一具有WS_TABSTOP风格的控制。   WS_THICKFRAME:创建一个具有可调边框的窗口,与WS_SIZEBOX风格相同。   WS_TILED:产生一个层叠的窗口。一个层叠的窗口有一个标题和一个边框。与WS_OVERLAPPED风格相同。   WS_TILEDWINDOW:创建一个具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU, WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXMIZEBOX风格的层叠窗口。与WS_OVERLAPPEDWINDOW风格相同。   WS_VISIBLE创建一个初始状态为可见的窗口。   WS_VSCROLL:创建一个有垂直滚动条的窗口。   X   指定窗口的初始水平位置。对一个层叠或弹出式窗口,X参数是屏幕坐标系的窗口的左上角的初始X坐标。对于子窗口,x是子窗口左上角相对父窗口客户区左上角的初始X坐标。如果该参数被设为CW_USEDEFAULT则系统为窗口选择缺省的左上角坐标并忽略Y参数。CW_USEDEFAULT只对层叠窗口有效,如果为弹出式窗口或子窗口设定,则X和y参数被设为零。   Y   指定窗口的初始垂直位置。对一个层叠或弹出式窗日,y参数是屏幕坐标系的窗口的左上角的初始y坐标。对于子窗口,y是子窗口左上角相对父窗口客户区左上角的初始y坐标。对于列表框,y是列表框客户区左上角相对父窗口客户区左上角的初始y坐标。如果层叠窗口是使用WS_VISIBLE风格位创建的并且X参数被设为CW_USEDEFAULT,则系统将忽略y参数。
nWidth
  以设备单元指明窗口的宽度。对于层叠窗口,nWidth或是屏幕坐标的窗口宽度或是CW_USEDEFAULT。若nWidth是CW_USEDEFAULT,则系统为窗口选择一个缺省的高度和宽度:缺省宽度为从初始X坐标开始到屏幕的右边界,缺省高度为从初始X坐标开始到目标区域的顶部。CW_USEDEFAULT只参层叠窗口有效;如果为弹出式窗口和子窗口设定CW_USEDEFAULT标志则nWidth和nHeight被设为零。      nHelght   以设备单元指明窗口的高度。对于层叠窗口,nHeight是屏幕坐标的窗口宽度。若nWidth被设为CW_USEDEFAULT,则系统忽略nHeight参数。   hWndParent   指向被创建窗口的父窗口或所有者窗口的旬柄。若要创建一个子窗口或一个被属窗口,需提供一个有效的窗口句柄。这个参数对弹出式窗口是可选的。Windows NT 5.0;创建一个消息窗口,可以提供HWND_MESSAGE或提供一个己存在的消息窗口的句柄。
hMenu
  菜单句柄,或依据窗口风格指明一个子窗口标识。对于层叠或弹出式窗口,hMenu指定窗口使用的菜单:如果使用了菜单类,则hMenu可以为NULL。对于子窗口,hMenu指定了该子窗口标识(一个整型量),一个对话框使用这个整型值将事件通知父类。应用程序确定子窗口标识,这个值对于相同父窗口的所有子窗口必须是唯一的。
hlnstance
  与窗口相关联的模块事例的句柄。
lpParam
  指向一个值的指针,该值传递给窗口 WM_CREATE消息。该值通过在IParam参数中的CREATESTRUCT结构传递。如果应用程序调用CreateWindow创建一个MDI客户窗口,则lpParam必须指向一个CLIENTCREATESTRUCT结构。   返回值:如果函数成功,返回值为新窗口的句柄:如果函数失败,返回值为NULL。若想获得更多错误信息,请调用GetLastError函数。
备注
  在返回前,CreateWindow给窗口过程发送一个WM_CREATE消息。对于层叠,弹出式和子窗口,CreateWindow给窗口发送WM_CREATE,WM_GETMINMAXINFO和WM_NCCREATE消息。消息WM_CREATE的IParam参数包含一个指向CREATESTRUCT结构的指针。如果指定了WS_VISIBLE风格,CreateWindow向窗口发送所有需要激活和显示窗口的消息。
编辑本段其它参数
  获取有关任务条是否为创建的窗口显示一个按钮的控制信息,参看Taskbar按钮的Visbility。   以下预定义的控制类可以在lpClassName参数中指定。注意在dwStyle参数中可以使用的相应的控制风格。
BUTTON按钮
  按钮是一个小矩形子窗口,用户可以点击来打开或关闭。按钮控制可以单独使用或包含在组中使用,可以为控制写标签或不写标签。当用户点击按钮控制时按钮的外观有明显的改变。请参看Button。查看dwStyle参数中指定的按钮风格表请参考Button Style。   COMBOBOX组合框由一个列表框和一个类似于编辑控制的选择域组成。在使用这个风格控制时,应用程序或者使列表框一直显示或者是作成一个下拉列表。如果列表框可见,则在编辑域中输入字符将使列表框中与字符一致的第一个域高亮。反之,在列表框中选择的项将显示在编辑域中。请参看Combo Boxes。
查看dwStyle参数
  中指定的组合框风格表请参考Combo Boxes Style。   EDIT编辑框一个小的矩形子窗口用户可以使用键盘向其中输入文本。用户可以通过点击或按Tab键来选中编辑框控制并且使控制获得焦点。当编辑框中显示一个闪烁的插入记号时,用户可以输入文本。使用鼠标移动光标,选择被替换的字符或设置插入字符的位置或使用回退键删除字符。请参看Edit。controls。   查看dwStyle参数中指定的编辑框风格的表格请参考Edit Control Style。   LISTBOX列表框字符串的列表。当应用程序必须显示名称的列表,例如文件名列表等,使用户可以从中选择时就可指定列表框。用户可以通过单击来选择名称。选择时,被选择名高亮,同时传递给父窗口一个通知消息。请参看LiSt Box Style。查看dwStyle参数中指定的列表风格表请参考List BOX Control Style。
MDICLIENT MDI客户设计出MDI客户窗口
  窗口接收控制MDI应用程序子窗口的消息。建议使用两种控制风格位:WS_CLIPCHILDREN和WS_CHILD。指定了WS_HSCROLL和WS_VSCROLL风格的MDI客户窗口允许用户将MDI子窗口滑动进入视窗。请参看MDI。   RiChEdit设计一个Rich Editl.0版的控制。该控制使用户可以以字符和段落格式测览和编辑文本,并且可以包含嵌入的COM对象。请参看Rich Edit Controls。查看dwStyle参数中指定的RichEdit风格表请参考LiSt Box Control Style。   RICHEDIT CLASS设计一个Rich Edik2.0版的控制。该控制使用户可以以字符和段落格式测览和编辑文本,并且可以包含嵌入的COM对象。请参看RichEditControls。查看dwStyle参数中指定的RichEdit风格表请参考RichEditControIStyle。   SCROLLBAR 滚动条设计的一个包含着一个滚动盒和两端有方向箭头的矩形。只要用户点击了控制,滚动条就给父窗口发送一个通知消息。如有必要,父窗口负责更新滚动条的位置。请参看ScrollBars。查看dwStyle参数中指定的滚动条风格表请参考Scroll Bars Style。
STATIC一个简单的静态文本域
  文本盒或矩形用于给控制加标签,组合控制或将控制与其他控制分开。   静态控制不提供输入和也不提供输出。请参看Static Control Styles。查看dwStyle参数中指定的静态文本风格表请参考Scroll Bars Style。   Windows95:系统可以支持最大16,364个窗口句柄。   备注:如果在链接应用程序时指明是Windows 4.x版本,除非应用程序的窗口有窗口某单,否则窗口控制没有标题控制。对Windows3.x版本没有这种要求。
Windows CE
  CreateWindow是以“宏”方式完成的。它被定义为CreateWindowEX,并且dwExStyle参数被置为长整数0。不支持菜单条控制,除非被声明为子窗口标志否则hMenu参数必须为NULL。不支持MDICLIENT窗口类。dwStyle参数可以是对话框(Dialogue Box),窗口(Windows),控制(Controls)文件中的窗口风格和控制风格的组合。
编辑本段下列dwStyle标志在窗口中不支持
  WS_CHILDWINDOW WS_ICONC;WS_MAXMIZE WS_MAXIMIZEBOX;WS_MINIMIZE WS_MINIMIZEBOX;   WS_OVERLAPPEDWINDOW WS_POPUPWINDOW;WS_SIZEBOXWS_THICKFRAME WS_TILED WS_TILEDWINDOW   下列dwStyle标志在控制和对话框中不支持:
不支持的按钮风格和静态控制风格
  BS_LEFTTEXT SS_BLACKFRAME;BS_MULTILINE SS_GRAYFRAME BS_TEXT SS_METAPICT;BS_USERBUTTON SS_SIMPLE   不支持组合框SS_WHITERECT风格。   CBS_OWNERDRAWFIXED SS_BLACKRECT;CBS_OWNWEDRAWVARIABLE SS_GRAYRECT; CBS_SIMPLE8R旧HTrIMAGE   不支持列表框控制SS_WHITEFRAME风格。   LBS_NODATA
不支持的对话框风格
  LBS_OWNERDRAWFIXED DS_ABSALIGN; LBS_OWNERDRAWVARIABLE DS_CENTERMOUSE; LBS_STANDARD DS_CONTEXTHELP   不支持滚动条的 DS_FIXEDSYS风格   SBS_BOTTOMALIGN DS_NOFAILCREATE;SBS_RIGHTALIGN DS_NOIDLEMSG;   SBS_SlZEBOXBOTT0MRIHTALIGN DS_SYSMODAL;SBS_SIZEGRIP   可使用BS_OWNERDRAW风格来代替BS_USERBUTTON风格。   可使用SS_LEFT或SS_LEFTNOWORDWRAP风格来代替静态控制的SS_SIMPLE风格。
不支持MDICLIENT窗口类
  所有窗口都隐含WS_CLIPSIBLINGS和 WS_CLIPCHILDREN风格。   Windows CE1.0版除对话框外不支持被属窗口。如果hwndParent参数不为NULL,则窗口隐含给出WS_CHILD风格。Windows CE1.0不支持菜单条。   (推荐)速查: Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib; Unicode:在Windows NT上实现为Unicode和ANSI两种版本。
分享到:
评论

相关推荐

    CreateWindow函数详解.doc )

    ### CreateWindow函数详解 #### 一、概述 `CreateWindow`函数是Windows编程中的核心API之一,用于创建各种类型的窗口,如交叠窗口、弹出窗口或子窗口等。通过该函数,开发者能够指定窗口的各种属性,包括但不限于...

    c#通过win32api方式创建窗体

    3. **创建窗体实例**:使用`CreateWindowEx`或`CreateWindow`函数创建窗体。这些函数返回一个句柄,代表了创建的窗口。 4. **消息循环**:窗体的事件处理是通过消息队列和消息循环来完成的。你需要创建一个消息循环...

    VC函数速查 visual C C++ 函数 速查

    例如,CreateWindow函数用于创建窗口,SendMessage函数用于发送消息给窗口,ReadFile函数用于读取文件数据。 VC函数速查手册中的"Main.htm"文件很可能是以HTML格式编写的电子版速查文档,这种格式便于阅读和搜索。...

    根据名称调用WindowsAPI函数

    在这里,CREATEWINDOWPROC是CreateWindow函数的原型定义。 4. **卸载DLL**:使用完DLL后,应通过FreeLibrary函数释放资源,防止内存泄漏。例如: ```cpp FreeLibrary(hModule); ``` 在实际开发中,这种方法常...

    SDL函数库介绍.docx

    SDL_CreateWindow 函数用于创建一个指定大小、尺寸、标志的窗口。该函数的参数包括窗口的名称、位置、尺寸、标志等。flags 可以是以下值的或运算: * SDL_WINDOW_FULLSCREEN:全屏窗口 * SDL_WINDOW_FULLSCREEN_...

    C++ 透明半透明效果设置

    CreateWindow 函数是 Windows API 中的一个函数,用于创建一个窗口。该函数的参数包括窗口的类名、标题、样式、位置和大小等信息。 在给定的代码中,CreateWindow 函数用于创建一个名为 "GameFrame" 的窗口,窗口的...

    WindowsAPI函数参考手册【高清】带书签.rar

    例如CreateWindow函数用于创建窗口,而GetMessage和DispatchMessage则用于接收和分发窗口消息。 2. **图形设备接口GDI**:GDI允许程序绘制图形、文本、图像等。它包括DrawText、FillRect等函数,用于在窗口上进行...

    FFmpegSDL 音视频开发 ① ( SDL 窗口绘制 )

    【FFmpeg】SDL 音视频开发 ① ( SDL ...3、SDL_CreateWindow 函数 4、SDL_CreateRenderer 函数 5、SDL_CreateTexture 函数 6、窗口 / 渲染器 / 纹理 关联 二、SDL 窗口绘制 - 代码示例 1、SDL 窗口绘制代码 2、执行结果

    WindowsAPI函数列表.rar_Windows API函数

    例如,CreateWindow函数用于创建一个新的窗口,GetMessage用于接收消息队列中的消息,DispatchMessage则将接收到的消息分发给相应的窗口处理函数。 在文件"WindowsAPI函数列表.txt"中,你可能会看到每个API函数的...

    精通Windows API函数_接口_编程实例(光盘)

    例如,CreateWindow函数用于创建窗口,GetProcAddress用于获取动态链接库(DLL)中的函数地址,WriteFile则用于向文件写入数据。 编程实例在学习过程中起着至关重要的作用,它们将理论知识转化为可执行的代码,帮助...

    API函数一日一练pdf

    例如,CreateWindow函数用于创建窗口,SendMessage函数用于发送消息,GlobalAlloc和GlobalFree则用于内存分配和释放。 《Windows API一日一练2.pdf》可能是进阶或后续的学习内容,涵盖了更复杂的API函数和概念。这...

    VC++常用函数,WIN32API,可以作为工具参考

    例如,使用CreateWindow函数创建窗口,SendMessage函数发送和接收窗口消息,CreateThread函数创建新线程,LoadLibrary和GetProcAddress函数动态加载和调用DLL中的函数等。这些技能不仅对编写原生Windows应用程序至关...

    精通windowsAPI函数接口编程实例【pdf+光盘】

    Windows API中的函数接口是开发者与操作系统交互的关键,例如CreateWindow函数用于创建窗口,SendMessage函数用于在窗口之间传递消息,CreateProcess函数用于启动新的进程,GetWindowText函数则用于获取窗口的文本...

    几百个常用的 API 函数的简介

    例如,CreateWindow函数用于创建窗口,GetMessage用于接收消息,SendInput可以模拟用户输入。理解和熟练使用这些API是开发Windows应用程序的基础。 codepub.com说明.txt 可能是某个代码分享平台的说明文档,该平台...

    Windows API开发详解 函数、接口、编程实例

    例如CreateWindow函数用于创建窗口,SendMessage函数用于在窗口之间传递消息。 2. **GDI(Graphics Device Interface)**: 提供了丰富的图形绘制功能,如绘图、填充、文本输出等。例如,GetStockObject获取预定义的...

    Windows API 函数全解帮助

    例如,CreateWindow函数用于创建窗口,SendMessage函数用于在窗口之间传递消息,WriteFile函数则用于向文件写入数据。学习Windows API函数对于深入理解操作系统的工作原理和开发底层系统级应用至关重要。 `Windows ...

    Win32编程常用函数

    **CreateWindow 函数** 用于创建并显示一个窗口。调用此函数时需要提供窗口类名、窗口标题、窗口样式等参数。例如: ```c++ HWND hWnd = CreateWindow( lpszClassName, // 窗口类名 lpszWindowName, // 窗口标题...

    win api.zip_API_API函数_WIN API_windows api

    例如,CreateWindow函数用于创建一个新的窗口,而DestroyWindow则负责关闭并删除一个窗口。 2. **消息处理**:GetMessage、TranslateMessage、DispatchMessage等用于处理应用程序的消息循环。这些函数允许程序接收...

    WinAPI函数打包下载(VB精版).rar

    例如,CreateWindow函数用于创建一个新的窗口,GetMessage函数用于从消息队列中获取消息,SendMessage函数则可以向指定窗口发送消息。这些函数提供了对Windows操作系统的底层访问,使得开发者能够实现更复杂、更高效...

    Windows API函数大全

    例如CreateWindow函数用于创建窗口,SendMessage函数用于向其他窗口发送消息,而GetMessage和DispatchMessage则负责接收和处理消息。 2. 图形设备接口(GDI):GDI提供了图形绘制、文字渲染、位图操作等功能。比如...

Global site tag (gtag.js) - Google Analytics