#include <windows.h>

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

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){

	static TCHAR szClassName[] = TEXT("cabbage");

	MSG msg;//消息结构
HWND hwnd;//窗口句柄
WNDCLASS wc;//窗口类别结构 wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景颜色
wc.hCursor = LoadCursor(NULL, IDC_ARROW);//光标
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);//小图标
wc.hInstance = hInstance;//实例句柄
wc.lpfnWndProc = myProc;//回调函数
wc.lpszClassName = szClassName;//类名
wc.lpszMenuName = NULL;//菜单
wc.style = CS_VREDRAW | CS_HREDRAW; //注册窗口 为程序窗口注册窗口类别
if(!RegisterClass(&wc)){
MessageBox(NULL, TEXT("注册窗口失败"), szClassName, MB_ICONERROR);
return 0;
} //创建窗口 根据窗口类别建立一个窗口
hwnd = CreateWindow(szClassName,//窗口类名
TEXT("hello insert"),//窗口标题
WS_OVERLAPPEDWINDOW,//窗口显示样式
CW_USEDEFAULT, CW_USEDEFAULT,//窗口在显示器上显示离左上角的距离,横轴为x,纵轴为y
CW_USEDEFAULT, CW_USEDEFAULT,//宽口宽度和高度
NULL, NULL, hInstance, NULL);// //显示窗口 在屏幕上显示窗口
ShowWindow(hwnd, nCmdShow);
//刷新窗口 只是窗口自我更新
UpdateWindow(hwnd); //消息循环
while(GetMessage(&msg, NULL, 0, 0)){//获取消息 从消息队列中取得消息
TranslateMessage(&msg);//翻译消息 转译某些键盘消息
DispatchMessage(&msg);//分发消息 将消息发送给窗口消息处理程序
} return 0;
} LRESULT CALLBACK myProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){ PAINTSTRUCT ps;//绘图结构
HDC hdc;//设备内容句柄
RECT rect;//矩形结构 switch(msg){
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);//开始绘制窗口 GetClientRect(hwnd, &rect);
DrawText(hdc, TEXT("你好,爱白菜的小昆虫!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER); EndPaint(hwnd, &ps);//结束绘制窗口
break;
case WM_DESTROY://销毁窗口消息
PostQuitMessage(0);//抛出退出程序消息
break;
} //返回执行内定的消息处理
return DefWindowProc(hwnd, msg, wParam, lParam);
}

  

运行结果

windows程序设计 创建一个新的窗口的更多相关文章

  1. Delphi CreateProcess 创建一个新的进程和它的主线程

    Delphi CreateProcess WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件 CreateProcess百科名片 WIN32 ...

  2. Win32 程序开发:创建一个应用程序窗口

    一.创建一个应用程序窗口 代码如下: // 头文件 #include <windows.h> // 全局变量 WCHAR g_lpszClassName[] = L"CLASSN ...

  3. Step by step 如何创建一个新森林

    原创地址:http://www.cnblogs.com/jfzhu/p/4006118.html 转载请注明出处 创建一个新森林就是在一台计算机上安装AD DS,并将这台计算机提升为域控制器. 演示环 ...

  4. 【Cocos2d-x for WP8 学习整理】(1)创建一个新项目

    喜大普奔                         10.1假期之前看到了一个很振奋的消息,就是随着Cocos2d-x 2.2的发布,WP8/WIN8有史以来第一次的合并到主版本了. 之前 V2 ...

  5. soapui中文操作手册(一)----创建一个新的项目

    1) 创建一个新的项目 点击项目,选择新建项目SOAP.这将打开一个新的SOAP项目对话框. 注意:你也可以做CTRL + N(WIN)或CMD+ N(MAC)来创建一个新的SOAP项目. 在新的SO ...

  6. Eclipse中创建一个新的SpringBoot项目

    在Eclipse中创建一个新的spring Boot项目: 1. 首先在Eclipse中安装STS插件:在Eclipse主窗口中点击 Help -> Eclipse Marketplace... ...

  7. github总结(1)--怎样创建一个新的仓库

    第一步:登录账号,进入github,创建一个新的空仓库 第二步:打开电脑上已经安装好的git-bash,切换至项目所在本地目录 第三步:创建本地仓库及提交文件到本地仓库(用windows命令行或者gi ...

  8. 记一次oracle创建一个新数据库,并导入正式环境数据库备份的dmp包过程

    背景:正式环境oracle数据库定时用exp备份一个dmp包,现在打算在一台机器上创建一个新数据库,并导入这个dmp包. 1.创建数据库 开始 -> 所有程序 -> Oracle -> ...

  9. 创建一个新的解耦的Orchard Core CMS网站

    引言本文将介绍创建一个功能齐全.解耦的CMS网站的过程,该网站允许您编辑博客帖子并呈现它们.解耦是一种开发模型,其中站点的前端和后端(管理)托管在同一个Web应用程序中,但只有后端由CMS驱动.然后, ...

随机推荐

  1. Java自定义注解的使用

    什么是注解? #============================================================================================ ...

  2. oracle查看某表字段类型

    来源:https://www.cnblogs.com/ufindme/p/5033843.html 今天遇到一个问题:要求在可重复执行的SQL脚本添加一段SQL代码:修改当前的数据类型.因为SQL代码 ...

  3. flume的安装部署

    系统环境:centos7.5  64位系统 1.下载安装包 官网下载离线安装包:apache-flume-1.8.0-bin.tar.gz 也可以使用linux命令下载: wget -c http:/ ...

  4. php curl post josn + header

    <meta charset="utf8"> <?php ini_set("max_execution_time",1800000); $arr ...

  5. 第四百零四节,python网站第三方登录,social-auth-app-django模块,

    第四百零四节,python网站第三方登录,social-auth-app-django模块, social-auth-app-django模块是专门用于Django的第三方登录OAuth2协议模块 目 ...

  6. 织梦移动版页面点击下一篇获取不到id

    1.首先找到网站目录下面的/include/arc.archives.class.php文件 2.找到837行的如下内容 if ( defined('DEDEMOB') ) { $mlink = 'v ...

  7. jquery中Get方法请求接口

    $.ajax( { url: apiUrl + '/api/Code/GetCodeProductInfo', type: 'GET', //Header头部添加Token参数 beforeSend: ...

  8. mac更改launchpad图标大小

    设置每列显示的图标数目为8 defaults write com.apple.dock springboard-columns -int 8设置每行显示的图标数目为7 defaults write c ...

  9. Zephyr学习(三)启动过程

    一.写在前面 最近对zephyr这个系统很感兴趣,因此业余有时间的时候都在研究它的源码,而光看代码不去动手这不是我的风格,于是乎在网上淘了一块STM32F103C8T6的核心板和一块NRF52832的 ...

  10. nodejs + typescirpt + vs code

    参考: 基于Nodejs生态圈的TypeScript+React开发入门教程 NPM install -save 和 -save-dev 傻傻分不清 使用typescript开发node js Typ ...