C语言创建windows窗口实例

所属分类: 软件编程 / C 语言 阅读数: 44
收藏 0 赞 0 分享

耐得住寂寞,禁得起诱惑,这就是程序人生

步骤:
1.在WinMain中定义各种变量
2.注册窗口类RegisterClass
3.创建窗口CreateWindow
4.显示窗口和更新窗口

复制代码 代码如下:

ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;

5.消息循环
复制代码 代码如下:

while (GetMessage (&msg, NULL, 0, 0))
     {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
     }

完整代码:
复制代码 代码如下:

#include <windows.h> 
 
LRESULT CALLBACK MyProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam); 
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) 

     MSG      msg; 
     HWND     hwnd; 
     static TCHAR szAppName[] = "hl"; 
 
     WNDCLASS wndclass; 
     wndclass.style        = CS_HREDRAW | CS_VREDRAW; 
     wndclass.cbClsExtra   = 0; 
     wndclass.cbWndExtra   = 0; 
     wndclass.lpfnWndProc  = MyProc; 
     wndclass.hInstance    = hInstance; 
     wndclass.hIcon        = LoadIcon(NULL,IDI_APPLICATION); 
     wndclass.hCursor      = LoadCursor(NULL,IDC_ARROW); 
     wndclass.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH); 
     wndclass.lpszMenuName = NULL; 
     wndclass.lpszClassName= szAppName; 
 
     if(!RegisterClass(&wndclass)) 
     { 
          MessageBox(NULL,TEXT("error"),TEXT("title"),MB_ICONERROR); 
          return 0; 
     } 
     hwnd = CreateWindow(szAppName, 
                              TEXT("Hello"), 
                              WS_OVERLAPPEDWINDOW, 
                              CW_USEDEFAULT, 
                              CW_USEDEFAULT, 
                              CW_USEDEFAULT, 
                              CW_USEDEFAULT, 
                              NULL, 
                              NULL, 
                              hInstance, 
                              NULL 
                              ); 
     ShowWindow(hwnd,nShowCmd); 
     UpdateWindow(hwnd); 
 
     while(GetMessage(&msg,hwnd,0,0)) 
     { 
          TranslateMessage(&msg); 
          DispatchMessage(&msg); 
     } 
     return msg.wParam; 

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

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

更多精彩内容其他人还在看

详解C++ string字符串类

这篇文章主要介绍了C++ string字符串类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

C++单例类模板详解

这篇文章主要介绍了C++单例类模板,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

C语言实现数据结构迷宫实验

这篇文章主要为大家详细介绍了C语言实现数据结构迷宫实验,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C语言数据结构之迷宫问题

这篇文章主要为大家详细介绍了C语言数据结构之迷宫问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C语言数据结构之迷宫求解问题

这篇文章主要为大家详细介绍了C语言数据结构之迷宫求解问题,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C语言实现小学生考试系统

这篇文章主要为大家详细介绍了C语言实现小学生考试系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C语言实现小学生随机出题测试计分

这篇文章主要为大家详细介绍了C语言实现小学生随机出题测试计分,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C语言实现小学生计算机辅助教学系统

这篇文章主要为大家详细介绍了C语言实现小学生计算机辅助教学系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解C++中构造函数,拷贝构造函数和赋值函数的区别和实现

这篇文章主要介绍了C++中构造函数,拷贝构造函数和赋值函数的区别和实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

C语言清除scanf()缓存的案例讲解

今天小编就为大家分享一篇关于C语言清除scanf()缓存的案例讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享
查看更多