#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用法相关推荐

  1. Extjs Window用法详解 3 打印具体应用,是否关掉打印预览的界面

    Extjs Window用法详解 3 打印具体应用,是否关掉打印预览的界面 Extjs 中的按钮元素 { xtype: 'buttongroup', title: '打印', items: [ me. ...

  2. 关于WM_MOUSEHOVER和WM_MOUSELEAVE消息的用法以及按钮的变色问题!

    本文用代码的方式详细说明了Windows编程中WM_MOUSEHOVER和WM_MOUSELEAVE消息的用法,以及按钮的变色问题,实现的功能也很多,主要是示例了这两个消息的用法和具体实现按钮的变色. ...

  3. 12.1 剪贴板的简单用法

    摘录于<Windows程序(第5版,珍藏版).CHarles.Petzold 著>P447 让我们先看看把数据传入剪贴板(剪切和复制)和从剪贴板中取得数据(粘贴)的代码. 12.1.1  ...

  4. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

  5. Pandas_transform的用法

    先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...

  6. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  7. pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  8. python yield 和 yield from用法总结

    #例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...

  9. tf.nn.embedding_lookup()的用法

    函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...

最新文章

  1. ​AI技术重现的老北京原声影像又火了,网友:这口音太过真实
  2. matlab计算数字滤波器的幅频响应
  3. PART 5: INTEGRATING SPRING SECURITY WITH SPRING BOOT WEB
  4. idea安装lua插件_KONG网关 — 插件开发
  5. 采购光纤收发器时应该注意哪些事项?
  6. oracle数据库恢复参数文件位置,Oracle数据库的参数文件备份与恢复
  7. 不能使用zsh或myzsh创建/切换 包含#的分支名(zsh: bad pattern: #xxx)
  8. JavaSE| 面向对象-类的五大成员
  9. 【元胞自动机】基于matlab元胞自动机晶体生长【含Matlab源码 232期】
  10. Windows驱动程序开发 - 初识驱动
  11. 成长小记-老天为我又设了一道大坎
  12. 用户管理的备份恢复(2)
  13. 字体粗细怎么设置 html,html中字体的粗细怎么设置?字体大小是font-size,那粗细怎么设置的?...
  14. 苹果手机扫描文件并转换格式,怎么把扫描文件转换成文字,扫描出来的文件格式换个可以复制的文字
  15. MATLAB数字图像处理系统——边缘检测
  16. vuepress侧边栏配置_VuePress默认主题配置(default theme config) - VuePress中文网
  17. 指纹识别综述(8): 唯一性
  18. 三种常用的Apk反编译工具
  19. 西门子变频器SINAMICS G120系列控制单元的STO功能设置方法
  20. day2:gnuradio 实现fm发射机

热门文章

  1. 内蒙古信用社面试(四子王旗)
  2. Centos生成SSL证书步骤详解
  3. 动态获取iphone键盘的高度
  4. CMS和G1的回收过程
  5. [vue] 解决vue-router在3.0版本以上重复点菜单报错的问题
  6. 深度调研车路协同智慧高速全国建设情况(中)
  7. 2021/08/14 【华为荣耀笔试】
  8. IP问问:如何验证IP地址定位的准确率
  9. java基于微信小程序的课堂点名签到请假系统 uniapp 小程序
  10. 30岁男子考上上海公务员年薪20万,却为了买房想去头条,结果蒙了