VC++6.0 应用Windows API函数进行应用程序编程

本文介绍了如何使用VC++6.0进行Windows API编程,通过创建窗口并设置窗口类,利用WndProc处理消息,实现应用程序的基本功能。详细讲解了窗口类的初始化、窗口实例化过程、消息循环以及窗口消息处理函数的编写,包括WM_CREATE、WM_PAINT和WM_DESTROY等消息的处理方法。
摘要由CSDN通过智能技术生成
分析代码如下:

 


#include <windows.h>
#pragma comment(lib,"winmm.lib")//为了要播放声音,必须导入这个库

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
/*
     HINSTANCE 类型的含义为实例句柄。
         hInstance 事实上就是当前应用程序自身的标识代号,代号通常都是一个32位整数。
         hPrevInstance 与过去的16位应用程序有关系,表示指向前一个实例的句柄。

     PSTR 类型的含义是指向以\0结尾的字符串指针。
         szCmdLine 前面的sz同样是表示指向以\0结尾的字符串指针,这个对象用于保存命令行。

     最后iCmdShow是一个整型数据,标记了程序最初的显示状态。
         SW_SHOWNORAML的时候为一般大小显示方式。
         SW_SHOWMAXIMIZED的时候为最大化显示方式。
         SW_SHOWMINNOACTIVE的时候程序将显示在任务栏上。
*/
{

    static char szAppName[] = TEXT("HelloWin");//预先定义一个c风格字符串,稍后用于设置窗口类名称。
    WNDCLASS wndclass;//定义窗口类对象
/*
     在这里不得不说一下的是,窗口类事实上是struct结构体,内部有10个分量,他们是用来于初始化窗口类对象而用的。
     这个结构体在winuser.h头文件中定义,从方式上来说,分为ASCII版的WNDCLASSAUnicode版的WNDCLASSW两个。
     typedef struct tagWNDCLASSA {
         UINT        style;
         WNDPROC     lpfnWndProc;
         int         cbClsExtra;
         int         cbWndExtra;
         HINSTANCE   hInstance;
         HICON       hIcon;
         HCURSOR     hCursor;
         HBRUSH      hbrBackground;
         LPCSTR      lpszMenuName;
         LPCSTR      lpszClassName;
     } WNDCLASSA, *PWNDCLASSA, NEAR *NPWNDCLASSA, FAR *LPWNDCLASSA;
     typedef struct tagWNDCLASSW {
         UINT        style;
         WNDPROC     lpfnWndProc;
         int         cbClsExtra;
         int         cbWndExtra;
         HINSTANCE   hInstance;
         HICON       hIcon;
         HCURSOR     hCursor;
         HBRUSH      hbrBackground;
         LPCWSTR     lpszMenuName;
         LPCWSTR     lpszClassName;
     } WNDCLASSW, *PWNDCLASSW, NEAR *NPWNDCLASSW, FAR *LPWNDCLASSW;
*/

//------------------------------- 窗口类对象初始化过程 ------------------------------------     wndclass.style         = CS_HREDRAW | CS_VREDRAW;
     /*
         设置窗口类对象的样式风格,CS_HREDRAW | CS_VREDRAW这两个值是通过位运算的与运算结合起来的。
         表示了窗口在改变了水平和垂直大小的时候,窗口要强迫刷新。
         这些通过define定义的标识,可以在WinUser.h头文件中找到。
         #define CS_VREDRAW          0x0001
         #define CS_HREDRAW          0x0002
         #define CS_DBLCLKS          0x0008
         #define CS_OWNDC            0x0020
         #define CS_CLASSDC          0x0040
         #define CS_PARENTDC         0x0080
         #define CS_NOCLOSE          0x0200
         #define CS_SAVEBITS         0x0800

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值