Windows应用程序框架(创建窗口)

  

学习提示:如果没有C语言基础可以通过下方链接学习:

0基础C语言学习与训练

0基础C++学习与训练

 

  在我们学习Windows项目开发之前,需要先学习Windows应用程序的框架,而该框架是由C与C++语言构成,

所以,需要大家至少具备C语言的基础。

 

  经过前面的学习,我们已经认识了(Windows应用程序的框架、WinMain入口函数、窗口类的信息与框架的联系、

窗口类的注册),接下来,我们就继续学习(Windows应用程序框架)中的(窗口的创建)。

 

  首先,我们会提出一个问题,为什么要创建窗口?

  其实,每个Windows应用程序都需要以窗口的形式进行展示,所以,当设置完(窗口类信息)并进行完(注册)

以后,就可以开始创建窗口了。

 

创建窗口的函数原型如下图:

HWND CreateWindowEx(

DWORD dwExStyle,

LPCSTR lpClassName,

LPCSTR lpWindowName,

DWORD dwStyle,

int X,

int Y,

int nWidth,

int nHeight,

HWND hWndParent,

HMENU hMenu,

HINSTANCE hInstance,

LPVOID lpParam );

 

创建窗口的函数原型分析:


1、返回值类型:HWND,说明创建窗口成功时,就会返回(新创建窗口)的句柄,如果创建失败,

就会返回NULL空值。


2、参数1:dwExStyle,用于说明窗口扩展样式标志,一般情况下,可以设置为NULL。

3、参数2:lpClassName,接收一个(已经注册成功)的(窗口类名字),在我们设置(窗口类)时,

有一个成员lpszClassName,在该成员设置时,我们就定义了一个字符串名字,现在,就把这个字符串的名字

作为当前的参数,这样,在创建窗口时,Windows才可以(根据该名字)去找到已经成功注册的(窗口类),

然后,根据(窗口类)中的设置去创建窗口。

 

如果大家对(窗口类)中的lpszClassName成员的设置记不清楚的话,

可以回顾前面学习过的(窗口类信息与应用程序框架的联系)。

 

4、参数3:lpWindowName,接收一个字符串,用于说明窗口标题栏上的名字。


5、参数4:dwStyle,用于说明窗口外观与行为的标志,通过这个参数的设置,可以控制窗口上是否有

(最大化、最小化、关闭窗口的按钮)。


常用标志见下图:

标志
说明
WS_POPUP
弹出式窗口
WS_OVERLAPPED
带有标题栏和边界的重叠式窗口
WS_OVERLAPPEDWINDOW
具有WS_OVERLAPPED、WS_CAPTION、WS_WYSMENU、
WS_THICKFRAME、WS_MINIMIZEBOX、WS_MAXIMIZEBOX
样式的重叠式窗口。
WS_VISIBLE
让窗口可以看见。
WS_SYSMENU
带有菜单
WS_BORDER
带有边框的窗口
WS_CAPTION
还有标题的窗口
WS_ICONIC
开始就处于最小化的窗口
WS_MAXIMIZE
开始就处于最大化的窗口
WS_MAXIMIZEBOX
带有最大化按钮的窗口
WS_MINIMIZE
开始就处于最小化的窗口
WS_MINIMIZEBOX
带有最小化按钮的窗口
WS_POPUPWINDOW
带有WS_BORDER、WS_POPUP和WS_SYSMENU类型的弹出式窗口。
WS_SIZEBOX
窗口边界可以变化
WS_HSCROLL
带有水平滚动条的窗口
WS_VSCROLL
带有垂直滚动条的窗口

 

以上标志可以通过(或运算符)把它们组合使用。

(6)参数5和6:X与Y,用于说明窗口(左上角)的X与Y坐标。

(7)参数7:nWidth,用于说明窗口的(宽度)。

(8)参数8:nHeight,用于说明窗口的(高度)。

(9)参数9:hWndParent,用于说明窗口的(父窗口句柄),如果没有父窗口,

   可以使用NULL空值,说明桌面就是父窗口。

(10)参数10:hMenu,用于说明窗口的(菜单句柄),如果没有菜单,可以设置为NULL空值。

(11)参数11:hInstance,用于说明(应用程序的句柄),就是WinMain函数的第1个参数。

(12)参数12:lpParam,高级特征,设置为NULL空值即可。

 

代码的实践与训练,大家可以通过下方的链接进行下载。

>>>下载Windows应用程序开发代码