20140702加:

WS_OVERLAPPEDWINDOW这个属性如果写成WS_OVERLAPPED,则窗口没有最大最小按钮以及左边的系统的菜单。

vs2010下的代码提示快捷键:CTRL + J

step:

窗口类赋值(12个参数)

注册窗口类

创建窗口

消息循环

  1. #include<Windows.h>
  2. #include<tchar.h>
  3.  
  4. LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
  5.  
  6. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
  7. {
  8. const TCHAR pClassName[] = _T("MyWindow");
  9. WNDCLASSEX wcex;
  10. wcex.cbSize = sizeof(WNDCLASSEX);
  11. wcex.cbClsExtra = ;
  12. wcex.cbWndExtra = ;
  13. wcex.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH);
  14. wcex.hCursor = ::LoadCursor(NULL, IDC_ARROW);
  15. wcex.hIcon = ::LoadIcon(NULL, IDI_APPLICATION);
  16. wcex.hIconSm = ::LoadIcon(NULL, IDI_APPLICATION);
  17. wcex.hInstance = hInstance;
  18. wcex.lpfnWndProc = WindowProc;
  19. wcex.lpszClassName = pClassName;
  20. wcex.lpszMenuName = NULL;
  21. wcex.style = CS_HREDRAW | CS_VREDRAW;
  22. BOOL bRet = ::RegisterClassEx(&wcex);
  23. if(!bRet)
  24. {
  25. MessageBox(NULL, _T("提示"), _T("注册窗口类失败"), MB_OK);
  26. return FALSE;
  27. }
  28. HWND hWnd = ::CreateWindowEx(, pClassName, _T("WinDemo"), WS_VISIBLE|WS_OVERLAPPEDWINDOW,
  29. CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
  30. NULL, NULL, hInstance, NULL);
  31.  
  32. if(NULL == hWnd)
  33. {
  34. MessageBox(NULL, _T("提示"), _T("创建窗口失败!"), MB_OK);
  35. return FALSE;
  36. }
  37. ::ShowWindow(hWnd, SW_SHOW);
  38. ::UpdateWindow(hWnd);
  39.  
  40. MSG msg;
  41. while(GetMessage(&msg, NULL, , ))
  42. {
  43. ::TranslateMessage(&msg);
  44. ::DispatchMessage(&msg);
  45. }
  46. return TRUE;
  47. }
  48. LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
  49. {
  50. switch(uMsg)
  51. {
  52. case WM_CLOSE:
  53. ::DestroyWindow(hwnd);
  54. return ;
  55. case WM_DESTROY:
  56. ::PostQuitMessage();
  57. return ;
  58. default:
  59. break;
  60. }
  61. return ::DefWindowProc(hwnd,uMsg,wParam,lParam);
  62. }

创建一个Windows窗体的更多相关文章

  1. [译]NeHe教程 - 创建一个OpenGL窗体

    原文: Setting Up An OpenGL Window 欢迎阅读我的OpenGL教程.我是一个热爱OpenGL的普通码农!我第一次听到OpenGL是在3Dfx刚发布他们给Voodoo I显卡的 ...

  2. 为MongoDB创建一个Windows服务

    一:选型,根据机器的操作系统类型来选择合适的版本,使用下面的命令行查询机器的操作系统版本 wmic os get osarchitecture 二:下载并安装 附上下载链接 点击安装包,我这里是把文件 ...

  3. 创建一个Windows服务程序与实现定时器效果

    1.创建一个Windows服务程序 一.   新建Window服务项目 二.   添加安装程序 三.   配置服务属性 四.   编写定时器代码 publicpartialclassService1 ...

  4. C#创建一个Windows Service

    Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的.所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Window ...

  5. tomcat创建一个windows服务

    具体步骤如下: 1.把JDK解压到C:\Program Files\Java下,Tomcat解压到D:\tomcat下 2.配置环境变量 JAVA_HOME:C:\Program Files\Java ...

  6. [翻译] 使用 .NET Core 3.0 创建一个 Windows 服务

    原文: .NET Core Workers as Windows Services 在 .NET Core 3.0 中,我们引入了一种名为 Worker Service 的新型应用程序模板.此模板旨在 ...

  7. C++使用代码创建一个Windows桌面应用程序

    WinMain函数 Windows应用程序的唯一程序入口. 函数原型 int WINAPI WinMain { HINSTANCE hInstancem HINSTANCE hPreInstance, ...

  8. Electron 从零创建一个 Windows/OS X/Linux 的桌面可执行程序

    [外链图片转存失败(img-3RucrgcX-1562556984462)(http://7vzsvy.com1.z0.glb.clouddn.com/electron-1-2.png "E ...

  9. 创建一个Windows Service 程序

    1.新建Windows项目,选择"Windows服务"类型的项目. 2.在生成的Service1.cs中代码中写你需要的代码,如下: using System; using Sys ...

随机推荐

  1. 扩展Date的DateAdd方法--计算日期

    Date.prototype.DateAdd = function(strInterval, Number) { var dtTmp = this; switch (strInterval) { ca ...

  2. Java Swing事件处理机制

    Java Swing的事件处理机制 Swing GUI启动后,Java虚拟机就启动三个线程,分别为主线程,事件派发线程(也是事件处理线程)和系统工具包线程. 主线程 :负责创建并显示该程序的初始界面: ...

  3. R语言描述性统计常用函数

  4. hdu----(2222)Keywords Search(trie树)

    Keywords Search Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  5. 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ..

    解决办法是:关闭tomcat,双击eclipse下tomcat服务器,在出来的Tomcat server at localhost页面中找到server options选项,选中其中的选项" ...

  6. Visual Studio 2010 类模板的修改

    第一步:找到类文件模板路径 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\C ...

  7. Anysys Fluent安装教程

    按顺序按照在一个文件夹内D:\Anysys Fluent 1:安装Exceed      调整电脑时间至2005年(前辈经验)      点击解压好的Exceed.13.[x86+x64]文件夹中的M ...

  8. 5月21日 CSS样式表加阴影

    HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  9. 分形树Fractal tree介绍——具体如何结合TokuDB还没有太懂,先记住其和LSM都是一样的适合写密集

    在目前的Mysql数据库中,使用最广泛的是innodb存储引擎.innodb确实是个很不错的存储引擎,就连高性能Mysql里都说了,如果不是有什么很特别的要求,innodb就是最好的选择.当然,这偏文 ...

  10. java并发带返回结果的批量任务执行

    转载:http://www.it165.net/pro/html/201405/14551.html 一般情况下,我们使用Runnable作为基本的任务表示形式,但是Runnable是一种有很大局限的 ...