在sdk下创建windows窗口

int APIENTRY WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int nCmdShow )

WNDCLASS wc;    //定义窗口类对象

//
 //   创建窗体   //
 //
 wc.lpszClassName = TEXT("Client");     //为窗口类定义一个名称
 wc.lpfnWndProc = MainWndProc;           //窗口对应的消息处理函数
 wc.style = CS_VREDRAW | CS_HREDRAW;  //窗口样式(当窗口改变时刷新窗口)
 wc.hInstance = hInst;                                //窗口对应的实例,由入口提供
 wc.hIcon = LoadIcon( hInst, MAKEINTRESOURCE(IDI_MAIN) );  //加载窗口图标(在资源内定义,也可位NULL)
 wc.hCursor = LoadCursor( NULL, IDC_ARROW );                        //指定鼠标指针的样式
 wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);   //指定背景的颜色或图片(通过刷子)
 wc.lpszMenuName = NULL;                       //菜单的名称
 wc.cbClsExtra = 0;                                       //保留
 wc.cbWndExtra = 0;                                    //保留

 if( RegisterClass( &wc ) == 0 )                  //注册窗口类,并判断是否成功
  return E_FAIL;

 hWnd = CreateWindow( TEXT("Client"), TEXT("Client1"),     //创建窗体(窗口类名称,窗体标题名称
       WS_SYSMENU | WS_MAXIMIZEBOX, 180,110,                //系统菜单|最小按钮不使用,X位置,Y位置
       430, 230, NULL, NULL, hInst, NULL );                               //宽度,高度,父窗口句柄,指向菜单, 实例(由入口提供),指向创建参数)

    if( hWnd == NULL )          //判断属否创建成功
     return E_FAIL;

 ShowWindow( hWnd, nCmdShow );       //显示窗体(窗体句柄,此参数由入口提供)
 UpdateWindow( hWnd );                           //更新窗口(发送WM_PAINT消息)

 ///
 //   进入消息循环   //
 //
 while(GetMessage( &msg, NULL, 0, 0 ) )  //得到消息
 {
  TranslateMessage( &msg );    //翻译消息
  DispatchMessage( &msg );     //处理消息
 }

 }

//
//   窗体消息处理函数   //
//
LRESULT CALLBACK MainWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
 HDC hdc;          //定义一个设备
 PAINTSTRUCT ps;          //定义一个PAINT结构

 switch (msg)
 {
  case WM_PAINT:            //重画窗口消息
  {
   hdc = BeginPaint(hWnd, &ps);   //得到设备信息
   HFONT hFont = CreateFont(30,0,0,0,0,0,0,0,0,0,0,0,0,"宋体");    // 定义显示的字体
   SelectObject(hdc, hFont);                         //设置窗口字体
   DeleteObject(hFont);                                 //删除字体
   //GetClientRect( hWnd, &rect );                //得到子窗体的位置矩形
   SetTextColor(hdc, RGB(0, 0, 0));                  //设置字体的颜色
   TextOut(hdc, 100, 50, "欢迎我的程序", 12);  //输出字体
   SetTextColor(hdc, RGB(0, 0, 255));
   TextOut(hdc, 100, 100, "我的第一个窗体", 15);

   EndPaint( hWnd, &ps);         //删除设备
            return 0L;
  }
  case WM_DESTROY:                 //退出消息
            PostQuitMessage( 0 );      //退出窗口
            return 0L;
 }
 return DefWindowProc(hWnd, msg, wParam, lParam);     //处理其他的消息
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值