Windows入门(一)

本人正在学习Windows编程操作,所以进行一些记录,希望对刚入门的个位有所帮助。

目录

1.什么是win32编程

2. 一个简单的win32程序

    2.1 创建一个空项目

    2.2  入口函数

    2.3   注册窗口

   2.3.1 窗口回调函数  

    2.4 创建窗口

    2.5 显示窗口

    2.6 更新窗口

3. 最终总结


1.什么是win32编程

       1.在32位的windows操作系统中 调用Windows 的 提供的API来进行编程。和c++时期原来不同的是c++时期我们一般创建控制台应用程序(Console Application),而在win32编成时期,我们使用的是 标准 windows窗口程序。

2. 一个简单的win32程序

    2.1 创建一个空项目

 首先我们创建一个win32的一个空项目。Windows入门(一)_第1张图片

windows桌面向导:在这里可以自主创建win32空项目和带有预编译头的项目(注:一定要在应用程序类型中选择桌面应用程序,然后在选择)

Windows桌面应用程序:系统自动为搭建好了框架

     2.2  入口函数

和以往的c++应用程序入口函数不同,Windows函数的入口函数为WinMain函数

 该入口函数的返回值为 Int 整形 , APIENTRY 用于标志该函数为入口函数(有的程序有时会写_stdcall 是一样的东西,应为在Windows宏定义中,WINAPI和APIENTRY都是__stdcall的宏定义),HINSTANCE 该参数可以看作是一个标识,用于记录操作的窗口是哪个。

        2.3   注册窗口

前面所说,Win32编程是写窗口程序,所以我们要先进行注册窗口然后才能创建窗口,注册窗口函数函数为RegisterClassWindows入门(一)_第2张图片

 在windows中我们用 RegisterClass(注:RegisterClassEX 为RegisterClass的扩展函数,基本已经代替RegisterClass) 来注册一个窗口(其实可以看做就是创建了一个带有窗口属性的类),而在这里我们用WNDCLASS 该结构体来保存窗口的属性 Windows入门(一)_第3张图片

cbsize : 设置WNDCLASS的大小

style: 定义窗口菜单的一些风格

CS_HREDRAW 若移动或改变窗口宽度,则刷新整个页面
CS_VREDRA 若移动或改变窗口高度,则刷新整个页面
CS_DBLCLKS 当用户双击窗口时向窗口发送双击消息
CS_NOCLOSE 禁用系统菜单的关闭指令
CS_DROPSHADOW 实现窗体边框阴影效果
...... ......

LpfnWndProc : 窗口消息处理函数,是一个回调函数,当窗口有消息时系统自动调用

cbClsExtra: 窗口类结构分配的额外字节数,一般默认为0

cbWndExtra:在窗口实例之后分配的额外字节数。 系统将字节初始化为零。 如果应用程序使                    用 WNDCLASSEX 在资源文件中使用 CLASS 指令创建对话框,则必须将此成员设置                    为 DLGWINDOWEXTRA
 hInstance; 要实例化的窗口的实例句柄
 hIcon: 设置图标资源的句柄
 hCursor:设置应用程序的鼠标样式
 hbrBackground :默认窗口,设置窗口默认背景颜色
 lpszMenuName:菜单的资源名称,名称显示在资源文件中

lpszClassName : WNDCLASS的另一个标识名

Windows入门(一)_第4张图片

   2.3.1 窗口回调函数  Windows入门(一)_第5张图片

    hwnd : 用于获取控制台窗口句柄                            uint :  该变量为窗口传来的消息     

    wparam: 信息中附带的字参数(后面再说)           lparam :  信息中附带的长参数(后面再说)

 (注:窗口处理函数是必须的,只有当返回true的时候窗口的注册才会成功;如果为默认 要返回       默认的Windows自带的处理函数 DefWindowProchan函数)

 2.4 创建窗口

创建窗口我们使用的是CreateWindow函数

Windows入门(一)_第6张图片

 LpClassName:  注册的窗口的标识                                  LpWindowName :窗口的TItle

DWstyle: 窗口的风格          x:窗口左上角距屏幕顶的距离     y:窗口左上角距屏幕左边框的距离 

nWidth: 窗口的宽                nHeight:窗口的高            hwndParent : 父窗口的句柄

hmenu:菜单句柄                        hinstance:实例句柄                                    lparam:附带信息

2.5 显示窗口

 ShowWindow(HWND hwnd,int nCmdShow);

第一个参数 hwnd 表示显示的窗口是哪个

第二个参数 是表示窗口的显示风格

2.6 更新窗口

UpdateWindow(hwnd);

发送一些消息,更新绘图等等;

3. 最终总结

经过以上步骤 ,就可以创建出一个简单的窗口Windows入门(一)_第7张图片

(注:因为我们还没有写消息循环函数,所在我们创建窗口的一瞬间就会死掉,如果想看窗口可打断点观看)

以上就是入门的第一步;

如果文章哪里有错误,欢迎指出,我会进行修改。

你可能感兴趣的:(c++,开发语言,windows)