create windowl

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
  name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-5572165936844014&dt=1193665761703&lmt=1193665780&format=336x280_as&output=html&correlator=1193665761687&url=http%3A%2F%2Fwww.codeguru.cn%2Fpublic%2Fiframe%2Fwinapiiframe.htm&color_bg=FFFFFF&color_text=000000&color_link=000000&color_url=FFFFFF&color_border=FFFFFF&ad_type=text&ga_vid=1285758818.1193665762&ga_sid=1193665762&ga_hid=111695597&flash=9&u_h=768&u_w=1024&u_ah=740&u_aw=1024&u_cd=32&u_tz=480&u_his=8&u_java=true" frameborder="0" width="336" scrolling="no" height="280" allowtransparency="allowtransparency">     函数功能:该函数创建一个重叠式窗口、弹出式窗口或子窗口。它指定窗口类,窗口标题,窗口风格,以及窗口的初始位置及大小(可选的)。该函数也指定该窗口的父窗口或所属窗口(如果存在的话),及窗口的菜单。若要使用除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_POPVP风格合用。

    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_EX_CONTEXTHELP风格同时出现,同时必须指定WS_SYSMENU风格。

    WS_OVERLAPPED:产生一个层叠的窗口。一个层叠的窗口有一个标题条和一个边框。与WS_TILED风格相同。

    WS_OVERtAPPEDWINDOW:创建一个具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXMIZEBOX风格的层叠窗口,与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 MS_THICKFRAME.

    WS_MINIMIZEBOX,WS_MAXMIZEBOX风格的层叠窗口。与WS_OVERLAPPEDWINDOW风格相同。

    WS_VISIBLE:创建一个初始状态为可见的窗口。WS_VSCROLL:创建一个有垂直滚动条的窗口。

    X:指定窗口的初始水平位置。对一个层叠或弹出式窗口,X参数是屏幕坐标系的窗口的左上角的初始X坐标。对于子富口,x是子窗口左上角相对父窗口客户区左上角的初始X坐标。如果该参数被设为CW_UCEDEFAULT则系统为窗口选择缺省的左上角坐标并忽略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_USEDFEAULT只参层叠窗口有效;如果为弹出式窗口和子窗口设定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两种版本。

3.windows桌面应用程序,关于CreateWindowW和绘制几个按钮 关于CreateWindowW和绘制按钮 阅读详情

相关推荐

API CreateWindowEx各参数详解与WNDCLASSEXW中style的参数含义

CreateWindowEx各参数详解与WNDCLASSEXW中style的参数含义

1911

CreateWindow

【API档案】版权归鱼C工作室(www.fishc.com)所有

码码要洗手 1923

Windows编程第一课:纯手工创建一个窗体

第一节 创建应用程序主窗体 1 创建消息处理函数 LRESULT CALLBACK fWinProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg){ case WM_CLOSE: //处理关闭按钮消息 DestroyWindow(hWnd); //销毁窗口 break; case WM_DESTROY: PostQuitMessage(0); //发送退出消息 break; } //将不处理的

忧郁沙的博客 1318

CreateWindow与CreateWindowEx函数详解

这两个可算是Window编程中的基本函数,所有的窗口要创建都需要用到这两个函数。 先看下CreateWindow函数的定义: #define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y,nWidth, nH

chen7528592的博客 6526

【WinAPI详解】<CreateWindowEx详解>

3. 若 nWidth 是 CW_USEDEFAULT,则系统为窗口选择一个默认的高度和宽度(默认宽度为从初始 x 坐标开始到屏幕的右边界,缺省高度为从初始 y 坐标开始到目标区域的顶部。4. 如果该参数被设为 CW_USEDEFAULT 则系统为窗口选择缺省的左上角坐标并忽略 y 参数,CW_USEDEFAULT 只对层叠窗口有效,如果为弹出式窗口或子窗口设定,则 x 和 y 参数被设为零。(Dev-C++用双引号)2. 对一个层叠或弹出式窗口,y 参数是屏幕坐标系的窗口的左上角的初始 y 坐标。

3279

CreateWindowEx详解

语法: HWND CreateWindowEx( DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND...

5227

win32编程中创建窗口时CW_USEDEFAULT的作用

https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679(v=vs.85).aspx如果这个参数设置CW_USEDEFAULT,系统选择的默认位置窗口的左上角,而忽略了y参数。CW_USEDEFAULT只有对重叠窗口是有效的;如果指定一个弹出子窗口,x和y 参数设置为零。 也就是说一般用它来创建你的程序的父窗口用的。

dqxiaoxiao的博客 6150

C/C++ 从零实现一个windows窗口(非常详细)

主要讲解用C/C++创建一个Windows窗口的全过程,非常详细了........

余识- 10万+

windows创建窗口

一般来讲,要绘制或者渲染目标物体首先需要创建窗口,通常需要配合渲染API(opengl directx 等)来实现。这边主要介绍的是windows上最基本的窗口创建方式,抛弃MFC等内部创建调用的方式,通过最底层的调用来实现窗口的创建。

牵LV小猪精的博客 1220

2.2 窗口创建

首先了解一下创建窗口的API,CreateWindow以及CreateWindowEx。CreateWindow函数是Windows API中一个非常重要的函数,用于创建一个新的窗口。该函数返回一个HWND类型的值,代表新创建窗口的句柄。如果创建失败,返回NULLCreateWindowEx与CreateWindow函数相比只是增加了更多的窗口样式选项。

安全小白,希望我的文章对你有所帮助。 1438

CreateWindow 函数

CreateWindow函数

Dolly2012的专栏 1462

C语言客户端窗口创建,C语言初学者:使用CreateWindow创建一个窗口

看着MFC向导生成的程序,总归是一头的雾水,看不清,搞不懂.还是老老实实的学下C语言吧.但是只学C语言的的内容是很单调的,于是要结合window的基础编程一起学习.这样才能学以致用.以前看书都是坚持不到最后,最多看到一半就没有耐心了.学到的知识也不能完整的消息吸收.现在回过头来,还是认清自己的真实基础,那是真心只能一点皮毛,还是要脚踏实地的好好学习.学习window的基础,还是先学一个Create...

weixin_33643727的博客 1146

Windows 程序设计:创建第一个窗口

超详细的Windows窗口创建教程!只要你有C语言基础就能轻松学会!文章末尾附带完整的Windows窗口创建代码!

先写一个BUG吧 1万+

默认参数的“坑”

用界面库Duilib的函数 (UIBase.h) Create(HWND hwndParent, LPCTSTR pstrName, DWORD dwStyle, DWORD dwExStyle, int x = CW_USEDEFAULT, int y = CW_USEDEFAULT, int cx = CW_USEDEFAULT, int cy = CW_USEDEFAULT, HMENU hMenu = NULL); 如此调用: pFrame->Create(NULL, NULL, U

u013551122的博客 418

Windows API 编程起始——创建一个窗口

        最初了解Windows api编程呢,就是先创建出一个最简洁的窗口,就如我们学习C/C++时的"Helloword"一样,这是进入windows编程大门的重要一个步,下面就开始吧...         大家都知道C/C++中,程序的执行是从main()函数开始的,main()是整个程序的入口函数,是不可或缺的。同样,windows编程中,也是有入口函数的,不过这里不是main,而...

木可的博客 1万+

【转】CreateWindow函数详解

CreateWindow函数详解 在注册完窗口类后就需要进行窗口的创建,用到的函数理所当然就是CreateWindow(), 而这个函数是基于窗口类的,所以还需要指定几个参数来制定特定的窗口。而且像一些不带边框的窗口是怎么创建的也是具有相当的技巧的,就是创建的是不带标题和边框的窗口,然后自己在客户区绘制程序的内容,能够制作个性化的应用程序。 API解释 该函数创建一个重叠式窗口、弹出式窗口或子窗口。它指定窗口类,窗口标题,窗口风格,以及窗口的初始位置及大小(可选的)。函数也指该窗...

sinolover的专栏 1987

2.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 cre

ansiwei的专栏 2525

CreateWindow函数

认识 CreateWindow 函数:CreateWindow(   lpClassName: PChar;    {窗口类的名字}   lpWindowName: PChar;    {窗口标题}   dwStyle: DWORD;        {窗口样式, 参加下表}   X,Y: Integer;          {位置; 默认的X,Y可以指定为: Integer(CW_USEDE...

雷家老四的博客 1万+

CreateWindow() -- 创建普通的窗口

(1)函数原型 1 HWND CreateWindow( 2 LPCTSTR lpClassName, //pointer to register class name 3 LPCTSTR lpWindowName, //pointer to window name 4 DWORD dwstyle, //window st...

aisxbng65578的博客 912
上一篇: childwindowfromapointexl
下一篇: copyimagel
WinApiExample
博客等级 码龄19年 2粉丝 663原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值