#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编程的逻辑 (88) - 正则表达式 (上)

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  2. 【gulp】gulp-file-include 合并 html 文件

    gulp-file-include 是 gulp 插件,它提供了一个 include 方法让我们可以像后端模板那样把公共部分的页面导入进来. 安装依赖包(包括了 gulp-file-include 和 ...

  3. python中的if __name__ == 'main'

    当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用: 对于编程语言来说,程序都必须要有一个入口,比如java和c#必须要 ...

  4. win10下VS2017配置GSL库

    GSL库:GNU Scientific Library 1.  下载:下载Complete package, except sources和Sources两个exe文件 2.  安装:将两个exe安装 ...

  5. 【消灭代办】第4周 - Echarts在移动端的各种填坑姿势

    啊呀呀呀呀...... 2018-12-03 代办一:坐标指示器相关问题: 见另一篇 第二问:https://www.cnblogs.com/padding1015/p/9936533.html 20 ...

  6. Windows10环境下使用VisualSVN server搭建SVN服务器

    参考: Windows10环境下使用VisualSVN server搭建SVN服务器 要搭建个svn用.之前自己的服务器用的乌龟.后来用了这个VisualSVN server. 具体教程见上链接.暂无 ...

  7. L - Father Christmas flymouse

    来源poj3160 After retirement as contestant from WHU ACM Team, flymouse volunteered to do the odds and ...

  8. Centos 为Nginx 搭建https

    Youtube Nginx 扩展模块 certbot文档 yum -y install epel-release yum -y install certbot certbot certonly --s ...

  9. Lucene入门学习二

    接上篇:增删改查 增加:这里不做过多阐述. 删除:删除全部,根据条件删除 修该:先删除,后添加 查询(*):查询所有,精确查询,根据数值范围查询,组合查询,解析查询. package com.ithe ...

  10. Winscp 密钥登录

    继前段时间,使用密钥SSH登录系统以后运维用着很爽,但是有一部分开发的同事反应使用Winscp添加私钥的时候,提示添加失败,原来Winscp使用的是putty作为SSH登录工具,而puttygen所生 ...