CreateWindow用法
#include <windows.h>
#include "stdafx.h"
#include <stdio.h> // sprintf(szChar,"char is %d",wParam)
LRESULT CALLBACK WinSunProc( //定义回调函数。
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
{
WNDCLASS wndcls; // 定义窗口类
wndcls.cbClsExtra=0; //以下初始化定义的窗口类
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndcls.hCursor=LoadCursor(NULL,IDC_ARROW);
wndcls.hIcon=LoadIcon(NULL,IDI_WINLOGO);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=WinSunProc;
wndcls.lpszClassName="Weixin2003";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wndcls); // 注册初始化的窗口类
HWND hwnd; //定义一个句柄,把生成的窗口句柄赋给hwnd;
hwnd=CreateWindow("Weixin2003","This is my test ! ",WS_OVERLAPPEDWINDOW,
0,0,600,400,NULL,NULL,hInstance,NULL); // 根据初始化的窗口类,创建该窗口。并把句柄赋给hwnd。
ShowWindow(hwnd,SW_SHOWNORMAL); // 显示窗口。
UpdateWindow(hwnd); 跟新窗口。
MSG msg; // 定义消息。
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg); // 转化翻译消息。
DispatchMessage(&msg); // 发送派送消息。
}
return 0;
}
// 回调函数
LRESULT CALLBACK WinSunProc( HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch(uMsg) //根据接受的信息做相应的动作。
{
case WM_CHAR: // 键盘按下
char szChar[20];
memset(szChar,'\0',20); //初始化szChar[20];
sprintf(szChar,"char is %d",wParam); // wParam 中存放的是按下的键盘的ASIC码值。Check sprintf ?
MessageBox(hwnd,szChar,"MSG标题",0);
break;
case WM_LBUTTONDOWN: //鼠标左键按下
MessageBox(hwnd,"mouse clicked","weixin",0);
HDC hdc;
hdc=GetDC(hwnd);
TextOut(hdc,0,50,"This is my test ! ",strlen("This is my test ! "));
ReleaseDC(hwnd,hdc);
break;
case WM_PAINT: //窗口重绘
HDC hDC;
PAINTSTRUCT ps;
hDC=BeginPaint(hwnd,&ps);
TextOut(hDC,200,200,"这里每次都会刷新",strlen("这里每次都会刷新"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE: // 关闭窗口
// WM_DESTROY 是关闭程序的
// WM_CLOSE 是关闭窗口的
// WM_QUIT 是关闭消息环的
if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY: // 单击Close按钮
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam); // 其他的交给系统默认处理。
}
return 0;
}
CreateWindow用法相关推荐
- Extjs Window用法详解 3 打印具体应用,是否关掉打印预览的界面
Extjs Window用法详解 3 打印具体应用,是否关掉打印预览的界面 Extjs 中的按钮元素 { xtype: 'buttongroup', title: '打印', items: [ me. ...
- 关于WM_MOUSEHOVER和WM_MOUSELEAVE消息的用法以及按钮的变色问题!
本文用代码的方式详细说明了Windows编程中WM_MOUSEHOVER和WM_MOUSELEAVE消息的用法,以及按钮的变色问题,实现的功能也很多,主要是示例了这两个消息的用法和具体实现按钮的变色. ...
- 12.1 剪贴板的简单用法
摘录于<Windows程序(第5版,珍藏版).CHarles.Petzold 著>P447 让我们先看看把数据传入剪贴板(剪切和复制)和从剪贴板中取得数据(粘贴)的代码. 12.1.1 ...
- c语言中external,static关键字用法
static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...
- Pandas_transform的用法
先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...
- Python中yield和yield from的用法
yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...
- pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法
squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...
- python yield 和 yield from用法总结
#例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...
- tf.nn.embedding_lookup()的用法
函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...
最新文章
- ​AI技术重现的老北京原声影像又火了,网友:这口音太过真实
- matlab计算数字滤波器的幅频响应
- PART 5: INTEGRATING SPRING SECURITY WITH SPRING BOOT WEB
- idea安装lua插件_KONG网关 — 插件开发
- 采购光纤收发器时应该注意哪些事项?
- oracle数据库恢复参数文件位置,Oracle数据库的参数文件备份与恢复
- 不能使用zsh或myzsh创建/切换 包含#的分支名(zsh: bad pattern: #xxx)
- JavaSE| 面向对象-类的五大成员
- 【元胞自动机】基于matlab元胞自动机晶体生长【含Matlab源码 232期】
- Windows驱动程序开发 - 初识驱动
- 成长小记-老天为我又设了一道大坎
- 用户管理的备份恢复(2)
- 字体粗细怎么设置 html,html中字体的粗细怎么设置?字体大小是font-size,那粗细怎么设置的?...
- 苹果手机扫描文件并转换格式,怎么把扫描文件转换成文字,扫描出来的文件格式换个可以复制的文字
- MATLAB数字图像处理系统——边缘检测
- vuepress侧边栏配置_VuePress默认主题配置(default theme config) - VuePress中文网
- 指纹识别综述(8): 唯一性
- 三种常用的Apk反编译工具
- 西门子变频器SINAMICS G120系列控制单元的STO功能设置方法
- day2:gnuradio 实现fm发射机