Windows API 空壳应用程序

#include <Windows.h>    //包含应用程序所需要的数据类型和数据结构的定义

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);   //窗口函数说明

//--------------------初始化窗口类------------------------------------

int WINAPI WinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
{
    HWND    hwnd;
    MSG     Msg;
    WNDCLASS    wndclass;
    char    lpszClassName[] = "窗口";     //窗口类名
    char    lpszTitle[] = "My_Windows";     //窗口标题名

    //窗口类定义
    wndclass.style = 0;                     //窗口类型为缺省类型
    wndclass.lpfnWndProc = WndProc;         //定义窗口处理函数
    wndclass.cbClsExtra = 0;                //窗口类无扩展
    wndclass.cbWndExtra = 0;                //窗口实例无扩展
    wndclass.hInstance = hInstance;         //当前实例句柄
    wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
                                            //窗口的最小化图标为缺省图标
    wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
                                            //窗口采用箭头光标
    wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
                                            //窗口背景为白色。加强制类型转换
                                            //提示:不能将HGDIOBJ类型的值分配到HBRUSH类型的实体
                                            //typedef void __RPC_FAR* HGDIOBJ,typedef void __RPC_FAR* HBRUSH
                                            //定义一样,但是不同的数据类型,混用的话,类型检查的时候通不过

    wndclass.lpszMenuName = NULL;           //窗口中无菜单
    wndclass.lpszClassName = lpszClassName; //窗口类名为“窗口”

    //窗口类的注册
    if (!RegisterClass(&wndclass))  //如果注册失败则发出警告
    {
        MessageBeep(0);
        return FALSE;
    }

    //创建窗口
    hwnd = CreateWindow
    (
        lpszClassName,              //窗口类名
        lpszTitle,                  //窗口实例的标题名
        WS_OVERLAPPEDWINDOW,        //窗口的风格
        CW_USEDEFAULT,
        CW_USEDEFAULT,              //窗口左上角坐标为缺省值
        CW_USEDEFAULT,
        CW_USEDEFAULT,              //窗口的宽高为缺省值
        NULL,                       //此窗口无父窗口
        NULL,                       //此窗口无主菜单
        hInstance,                  //创建此窗口的应用程序的当前句柄
        NULL                        //不使用该值
    );

    //显示窗口
    ShowWindow(hwnd, nCmdShow);

    //绘制用户区
    UpdateWindow(hwnd);

    //消息循环
    while (GetMessage(&Msg, NULL, 0, 0))
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
    return Msg.wParam;          //消息循环结束即程序终止时将消息返回系统
}

//窗口函数
LRESULT CALLBACK WndProc
(
    HWND    hwnd,
    UINT    message,
    WPARAM  wParam,
    LPARAM  lParam
)
{
    switch (message)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
    default:
        return  DefWindowProc(hwnd, message, wParam, lParam);
    }
    return (0);
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值