加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows程序设计 显示一个窗口

发布时间:2020-12-14 02:40:56 所属栏目:Windows 来源:网络整理
导读:#include windows.h HINSTANCE hinst;LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow){ static TCHAR szClassName[] = TEXT( " MainWClass " ); W
#include <windows.h>

HINSTANCE hinst;

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

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
    static TCHAR szClassName[] = TEXT("MainWClass");
    WNDCLASSEX wcx;//窗口类
    HWND hwnd;//窗口句柄
    MSG msg;//消息
    hinst = hInstance;//应用程序实例句柄,保存为全局变量。

    //填充窗口类的数据结构
    wcx.cbSize = sizeof(wcx);//结构体大小
    wcx.style = CS_HREDRAW | CS_VREDRAW;//样式:窗口大小改变时重绘界面
    wcx.lpfnWndProc = MainWndProc;//窗口消息处理函数
    wcx.cbClsExtra = 0;//不使用类内存
    wcx.cbWndExtra = 0;//不使用窗口内存
    wcx.hInstance = hInstance;//所属的应用程序实例句柄
    wcx.hIcon = LoadIcon(NULL,IDI_APPLICATION);//图标:默认
    wcx.hCursor = LoadCursor(NULL,IDC_ARROW);//光标:默认
    wcx.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//背景:白色
    wcx.lpszMenuName = NULL;//菜单:不使用
    wcx.lpszClassName = szClassName;//窗口类名
    wcx.hIconSm = (HICON)LoadImage(hInstance,MAKEINTRESOURCE(5),IMAGE_ICON,GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),LR_DEFAULTCOLOR);//小图标

    //注册窗口
    if(!RegisterClassEx(&wcx))
    {
        return 1;
    }

    //创建窗口
    hwnd = CreateWindow(
        szClassName,//窗口名
        TEXT("BASE"),//窗口标题
        WS_OVERLAPPEDWINDOW,//窗口样式
        CW_USEDEFAULT,//水平位置X:默认
        CW_USEDEFAULT,//垂直位置Y:默认
        CW_USEDEFAULT,//宽度:默认
        CW_USEDEFAULT,//高度:默认
        NULL,//父窗口:无
        NULL,//菜单:使用窗口类的菜单
        hInstance,//应用程序实例句柄
        NULL//窗口创建时数据:无
        );

    if(!hwnd)
    {
        return 1;
    }

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

    //消息循环
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);//翻译消息
        DispatchMessage(&msg);//分发消息
    }

    return 0;
}

LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
    switch(umsg)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    }
    return DefWindowProc(hwnd,umsg,wParam,lParam);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读