创建Win32项目

创建一个新的c++WIn32空项目
添加.cpp文件,取名main.cpp
创建主要代码

#include<windows.h>//大多数API函数需要包含此文件
//在创建应用程序入口点之前必须声明一个窗口过程原型函数才能在窗口结构 中使用
LERSULT CALLBACK WndProc(HINSTANCE hThis,UINT uMsg,WPARAM wParam,LPARAM lParam);
   // Win32应用程序和控制台应用程序的main函数原型稍有不同,如下代码所示:
    int WINAPI WinMain(HINSTANCE hThis,HINSTANCE hPrev,LPSTR szCmdLine,int iCmdShow)
    注意,在返回类型(int)后面有一个WINAPI宏,它表示一种调用约定
    参数:hThis 应用程序当前实例句柄
              hPrev 应用程序上一个实例句柄,查询MSDN文档此参数设为NULL;
              szCmdLine 应用程序命令行,设为NULL
              iCmdShow 控制显示窗口
用UNREFERENVED_RARAMETER宏告诉编译器不使用某些参数,来优化程序如下所示
实例化窗口结构WNDCLASSEX,该对象存储了待生成窗口的细节,如栈大小,当前应用程序的实例句柄、窗口样式、窗口颜色、图标和鼠标指针主要代码段如下:
WNDCLASSEX wndclass={0};
    wndclass.cbSize = sizeof(WNDCLASSEX);
    wndclass.style = CS_HREDRAW|CS_VREDRAW;
    wndclass.lpfnWndProc = WndProc;
    wndclass.cbClsExtra =0;
    wndclass.cbWndExtra = 0;
    wndclass.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
    wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
    wndclass.hIcon = NULL;
    wndclass.hInstance = hThis;
    wndclass.lpszClassName = "Project";
    下面的代码注册一个窗口类供CreateWindow和CreateWindowE想函数调用
    if(!RegisterClassEx(&wndclass))
    {
            MessageBeep(0);
            return FALSE;
    }
    CreateWindow函数创建一个重叠、弹出的窗口或者子窗口,它指定窗口类、窗口标题、窗口样式、窗口的初始位置和大小(可选),该函数还指定了窗口的父窗口或所有者(如果有的话)
    HWND hWnd=CreateWindow
        ("Project",         //窗口类名.
        "main",             //标题名.
        WS_OVERLAPPEDWINDOW,    //带标题栏,最大/小按钮的窗口
        CW_USEDEFAULT,  //窗口左上角坐标.
        0,                      
        CW_USEDEFAULT,  //采用缺省的宽度和高度.
        0,
        NULL,           //无父窗口.
        NULL,           //无主菜单.
        hThis,          //当前实例句柄.
        NULL);
    ShowWindow(hWnd,nCmdShow);  //显示窗口.
    UpdateWindow(hWnd);     //更新并绘制用户区.
我们还需要一个MSG结构的实例来表示窗口消息
MSG Message={0};
    while(GetMessage(&Message,0,0,0))
        {
            TranslateMessage(&Message); //把虚拟消息翻译成字符消息
            DispatchMessage(&Message);//分发一条消息给窗口过程
        }
    当关闭应用程序或触发一些退出命令时,DestroyWindow API销毁指定窗口
    DestroyWindow (hWnd)    ;
    注销窗口类
    unregisterClass(    wndclass.lpszClassName,hThis);
    定义
    int WndProc(HWND hWnd,UINT iMessage,
    UINT wParam,LONG lParam)
    {
        switch(iMessage)
        {
            CASE WM_CLOSE:
            {
                PostQuitMessage(0); //释放系统资源
                break;
            }
            default:
            {
                return(DefWindowProc(hWnd,iMessage,wParam,lParam));
            }


    }
    return 0;
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值