首页 > Windows开发 > 详细

win32第一个windows窗口创建过程

时间:2021-09-06 02:15:19      阅读:26      评论:0      收藏:0      [点我收藏+]
  • 窗口创建过程

1.定义WinMain函数

2.定义窗口处理函数(自定义,处理消息)

3.注册窗口类(向操作系统写入一些数据)

4.创建窗口(内存中创建窗口)

5.显示窗口(绘制窗口的图像)

6.消息循环(获取/翻译/派发消息)

消息处理

 

  • 操作步骤

1.创建项目

技术分享图片

 技术分享图片

 技术分享图片

 2.新建项

技术分享图片

 技术分享图片

 技术分享图片

 3.更改项目引用集

技术分享图片

 技术分享图片

 4.添加代码

#include <windows.h>

//2.窗口处理函数(自定义,处理消息)
LRESULT CALLBACK WndProc(HWND hWnd, UINT msgID, WPARAM wParam, LPARAM IParam)
{
    return DefWindowProc(hWnd, msgID, wParam, IParam);
}

//1.入口函数
int CALLBACK WinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd )
{
    //3.注册窗口类
    WNDCLASS wc = {0};
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.hCursor = NULL;
    wc.hIcon = NULL;
    wc.hInstance = hInstance;
    wc.lpfnWndProc = WndProc;
    wc.lpszClassName = "Main";
    wc.lpszMenuName = NULL;
    wc.style = CS_HREDRAW | CS_VREDRAW;
    RegisterClass(&wc);//将以上所有赋值全部写入操作系统

    //4.在内存创建窗口
    HWND hWnd = CreateWindow("Main", "window", WS_OVERLAPPEDWINDOW, 100, 100, 500, 500, NULL, NULL, hInstance, NULL);

    //5.显示窗口
    ShowWindow(hWnd, SW_SHOW);
    UpdateWindow(hWnd);

    //6.消息循环
    MSG nMsg = {0};
    while (GetMessage(&nMsg, NULL, 0, 0))
    {
        TranslateMessage(&nMsg);
        DispatchMessage(&nMsg);//将消息交给窗口处理函数来处理
    }

    return 0;
}

演示

技术分享图片

 

阿飞

2021年9月4日

win32第一个windows窗口创建过程

原文:https://www.cnblogs.com/nxopen2018/p/15228081.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!