|
学习提示:如果没有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应用程序开发代码 |