WIN32 SDK 创建窗口实例

在Windows平台做开发都需要了解WIN32的应用程序运行机理,最近也正在学习使用MFC。所以用WIN32 SDK写了一个绘制窗口的简单程序。程序虽然没有什么功能,但是已经展示了WIN32应用程序机理的基本。

 

#include <windows.h>
#include <stdio.h>

 

LRESULT CALLBACK WinProc(
  HWND hwnd,     
  UINT message,    
  WPARAM wParam, 
  LPARAM lParam 
);

 

int WINAPI WinMain(
  HINSTANCE hInstance,      // 应用程序当前实例句柄
  HINSTANCE hPrevInstance,  // 应用程序其他实例句柄
  LPSTR lpCmdLine,          // 指向程序命令行参数的指针
  int nCmdShow)              // 应用程序开始执行时窗口显示方式的整数值标识
{
    WNDCLASS wd;
    wd.cbClsExtra=0;//窗口类无扩展
    wd.cbWndExtra=0;//窗口实例无扩展
    wd.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);//窗口背景为黑色
    wd.hCursor=LoadCursor(NULL,IDC_ARROW);//窗口采用箭头光标
    wd.hIcon=LoadIcon(NULL,IDI_APPLICATION);//窗口的最小化图标为默认图标
    wd.hInstance=hInstance;//当前实例句柄
    wd.lpfnWndProc=WinProc;//定义窗口处理函数
    wd.lpszClassName="自定义窗口";//定义窗口类名称
    wd.lpszMenuName=NULL;//窗口中无菜单
    wd.style=CS_HREDRAW | CS_VREDRAW;//定义窗口类型为当窗口大小变化时窗口重画

    RegisterClass(&wd);//注册窗口类

    //创建窗口
    HWND hwnd;
    hwnd=CreateWindow("自定义窗口","WIN32 SDK 创建窗口实例",WS_OVERLAPPEDWINDOW,
        0,0,800,500,NULL,NULL,hInstance,NULL);

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

    //更新窗口
    UpdateWindow(hwnd);

    //消息循环
    MSG msg;
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return 0;
}

 

//窗口函数
LRESULT CALLBACK WinProc(
  HWND hwnd,      // handle to window
  UINT message,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
)
{
    switch(message)
    {
    case WM_LBUTTONDOWN:
        MessageBox(hwnd,"blog.csdn.net/ducongcong!","WIN32SDK",0);
        break;
    case WM_CLOSE:
        if(MessageBox(hwnd,"关闭窗口吗?","WIN32SDK",MB_YESNO)==IDYES)
        {
             DestroyWindow(hwnd);
        }

        break;
    case WM_DESTROY:
          PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hwnd,message,wParam,lParam);
    }
    return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值