windows程序设计 创建一个新的窗口
#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程序设计 创建一个新的窗口的更多相关文章
- Delphi CreateProcess 创建一个新的进程和它的主线程
Delphi CreateProcess WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件 CreateProcess百科名片 WIN32 ...
- Win32 程序开发:创建一个应用程序窗口
一.创建一个应用程序窗口 代码如下: // 头文件 #include <windows.h> // 全局变量 WCHAR g_lpszClassName[] = L"CLASSN ...
- Step by step 如何创建一个新森林
原创地址:http://www.cnblogs.com/jfzhu/p/4006118.html 转载请注明出处 创建一个新森林就是在一台计算机上安装AD DS,并将这台计算机提升为域控制器. 演示环 ...
- 【Cocos2d-x for WP8 学习整理】(1)创建一个新项目
喜大普奔 10.1假期之前看到了一个很振奋的消息,就是随着Cocos2d-x 2.2的发布,WP8/WIN8有史以来第一次的合并到主版本了. 之前 V2 ...
- soapui中文操作手册(一)----创建一个新的项目
1) 创建一个新的项目 点击项目,选择新建项目SOAP.这将打开一个新的SOAP项目对话框. 注意:你也可以做CTRL + N(WIN)或CMD+ N(MAC)来创建一个新的SOAP项目. 在新的SO ...
- Eclipse中创建一个新的SpringBoot项目
在Eclipse中创建一个新的spring Boot项目: 1. 首先在Eclipse中安装STS插件:在Eclipse主窗口中点击 Help -> Eclipse Marketplace... ...
- github总结(1)--怎样创建一个新的仓库
第一步:登录账号,进入github,创建一个新的空仓库 第二步:打开电脑上已经安装好的git-bash,切换至项目所在本地目录 第三步:创建本地仓库及提交文件到本地仓库(用windows命令行或者gi ...
- 记一次oracle创建一个新数据库,并导入正式环境数据库备份的dmp包过程
背景:正式环境oracle数据库定时用exp备份一个dmp包,现在打算在一台机器上创建一个新数据库,并导入这个dmp包. 1.创建数据库 开始 -> 所有程序 -> Oracle -> ...
- 创建一个新的解耦的Orchard Core CMS网站
引言本文将介绍创建一个功能齐全.解耦的CMS网站的过程,该网站允许您编辑博客帖子并呈现它们.解耦是一种开发模型,其中站点的前端和后端(管理)托管在同一个Web应用程序中,但只有后端由CMS驱动.然后, ...
随机推荐
- Java编程的逻辑 (88) - 正则表达式 (上)
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- 【gulp】gulp-file-include 合并 html 文件
gulp-file-include 是 gulp 插件,它提供了一个 include 方法让我们可以像后端模板那样把公共部分的页面导入进来. 安装依赖包(包括了 gulp-file-include 和 ...
- python中的if __name__ == 'main'
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用: 对于编程语言来说,程序都必须要有一个入口,比如java和c#必须要 ...
- win10下VS2017配置GSL库
GSL库:GNU Scientific Library 1. 下载:下载Complete package, except sources和Sources两个exe文件 2. 安装:将两个exe安装 ...
- 【消灭代办】第4周 - Echarts在移动端的各种填坑姿势
啊呀呀呀呀...... 2018-12-03 代办一:坐标指示器相关问题: 见另一篇 第二问:https://www.cnblogs.com/padding1015/p/9936533.html 20 ...
- Windows10环境下使用VisualSVN server搭建SVN服务器
参考: Windows10环境下使用VisualSVN server搭建SVN服务器 要搭建个svn用.之前自己的服务器用的乌龟.后来用了这个VisualSVN server. 具体教程见上链接.暂无 ...
- L - Father Christmas flymouse
来源poj3160 After retirement as contestant from WHU ACM Team, flymouse volunteered to do the odds and ...
- Centos 为Nginx 搭建https
Youtube Nginx 扩展模块 certbot文档 yum -y install epel-release yum -y install certbot certbot certonly --s ...
- Lucene入门学习二
接上篇:增删改查 增加:这里不做过多阐述. 删除:删除全部,根据条件删除 修该:先删除,后添加 查询(*):查询所有,精确查询,根据数值范围查询,组合查询,解析查询. package com.ithe ...
- Winscp 密钥登录
继前段时间,使用密钥SSH登录系统以后运维用着很爽,但是有一部分开发的同事反应使用Winscp添加私钥的时候,提示添加失败,原来Winscp使用的是putty作为SSH登录工具,而puttygen所生 ...