windows 01
01
#include <Windows.h>
#include “resource.h”
//
//typedef LONG_PTR LRESULT;
//LRESULT <=> LONG_PTR <=> long
//CALLBACK <=> __stdcall 回调函数
//第一个参数:窗口句柄
//第二个参数:消息编号
//UINT
//typedef unsigned int UINT;
//UINT <=> unsigned int
//第三个参数:附加信息
//WPARAM:
//typedef UINT_PTR WPARAM;
//typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;
//WAPRAM <=> UINT <=> unsigned int
//第四个参数:附加信息
//LPARAM:
//typedef LONG_PTR LPARAM;//
//typedef _W64 long LONG_PTR, *PLONG_PTR;
//LPARAM <=> LONG <=> long
//窗口处理函数
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg , WPARAM wParam ,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
{
//流程
//1、设计窗口类
wchar_t szAppClassName[] = L"DKGuiFoundation";
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; //窗口类的风格
wc.lpfnWndProc = WindowProc; //窗口处理函数
wc.hbrBackground = CreateSolidBrush(RGB(255,255,0)); //窗口背景画刷 0->255, 0:最暗, 255:最亮
wc.cbClsExtra = 0; //窗口类额外扩展空间大小
wc.cbWndExtra = 0; //窗口额外扩展空间大小
wc.hCursor = LoadCursor(hInstance, MAKEINTRESOURCE( IDC_CURSOR)); //光标句柄
wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MAIN)); //图标句柄
wc.hInstance = hInstance; //当前应用程序实例句柄
wc.lpszClassName = szAppClassName; //窗口类型名
wc.lpszMenuName = NULL; //菜单名//LoadCursor:如果是系统光标,第一个参数传递NULL,,如果是自定义资源,第一个参数传递hInstance
//LoadIcon:如果是系统图标,第一个参数传递NULL,,如果是自定义资源,第一个参数传递hInstance//2、注册窗口类
// #define TRUE 1
// #define FALSE 0
//ATOM//typedef WORD ATOM; //字
//typedef unsigned short WORD;
//WORD <=> unsigned short//DWORD //双字
//typedef unsigned long DWORD;
//DWORD <=> unsigned longif (FALSE == RegisterClass(&wc))
{MessageBox(NULL, L"此程序不能运行在Windows NT上", L"温馨提示", MB_OK);return 0;
}//3、创建窗口
//HMENU
//LPVOID <=> void*
wchar_t szWindowTitle[] = L"这是我的第一个Windows窗口应用程序";
HWND hWnd = CreateWindow(szAppClassName, //窗口类型名,一定要传递已经注册过了的类型名szWindowTitle, //窗口的标题WS_CAPTION | WS_BORDER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_SYSMENU, //窗口的风格,WS:Window Style200, //窗口左上角横坐标100, //窗口左上角纵坐标800, //窗口的宽度600, //窗口的高度NULL, //父窗口句柄NULL, //菜单句柄hInstance, //当前应用程序实例句柄类型NULL //要传递的参数信息 );if (hWnd == NULL)
{MessageBox(NULL, L"创建窗口失败", L"温馨提示", MB_OK);return 0;
}//4、显示窗口
ShowWindow(hWnd, SW_SHOW); //SW_HIDE:隐藏//5、更新窗口
UpdateWindow(hWnd); //重新绘制一下界面//6、消息循环
/*
typedef struct tagMSG {
HWND hwnd; //消息发出的窗口句柄
UINT message; //消息编号
WPARAM wParam; //消息附加信息
LPARAM lParam; //消息附加信息
DWORD time; //消息放入消息队列的时间
POINT pt; //消息放入消息队列时候的鼠标坐标
#ifdef _MAC
DWORD lPrivate;
#endif
} MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
*///Windows的消息机制//GetMessage如果获取到了一个WM_QUIT ,退出消息, 返回0,结束循环MSG msg;
while (GetMessage(&msg, NULL, 0,0))
{//将消息分发给窗口处理函数,窗口处理函数对消息进行处理DispatchMessage(&msg);//将虚拟键消息转化为字符消息TranslateMessage(&msg);
}return 0;//退出
}
//窗口处理函数
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_CLOSE://窗口关闭消息
DestroyWindow(hWnd);
break;
case WM_DESTROY://窗口消息消息
PostQuitMessage(0); //发出一个WM_QUIT消息
break;
}
return DefWindowProc(hWnd, uMsg,wParam,lParam);
}
windows 01相关推荐
- 视频教程-FFmpeg音视频开发实战6 iOS/Android/windows/Linux-其他
FFmpeg音视频开发实战6 iOS/Android/windows/Linux 先后就职于德国BOSCH,iBabyLabs等企业担任架构设计师,主程, 精通嵌入式Linux,iOS,Android ...
- OV7725的帧率和PCLK寄存器设置
一.OV7725的PCLK的改变和以下几个寄存器有关: 1:OX0D(COM4): ---------------------------------------------------------- ...
- 30 Days of .NET [Windows Mobile Applications] - Day 01: Minutes to Midnight Countdown(午夜倒数器)...
得到原作者 Chris Craft 的同意,本人可以翻译他的系列文章 30 Days of .NET [Windows Mobile Applications]并在博客园里发表.这是一个十分趣味性很高 ...
- ORACLE 10.2.01升级10.2.05 for windows 详细文档
最近要做一个数据库的升级工作,提前在自己的PC机上练习了一下,这种文档在网上很多,但是大多都是使用命令编辑脚本,其实数据库还有一个DBUA的升级工具可以使用,使升级工作方便了很多. OS环境:wind ...
- 【Windows必备软件】01 Groupy 实现你所有的窗口标签化管理
[Windows必备软件]01 Groupy 实现你所有的窗口标签化管理 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志--苏轼 写在前面 本专栏是用于记录 Windows 上面的一些好用的软件,开 ...
- Windows 7 Ultimate Magic Key(更新至65枚)【2010.01.19、神KEY之后的疯狂】
这个适用于Windows 7旗舰版的"激活密钥",尽管"面世"不到2个月的时间,但是已经有过直接联网激活系统取得"正版权益"的辉煌战绩. 其 ...
- 【OWA】01环境准备:通过Hyper-v创建Windows服务器
前言 近期公司要求测试一下SharePoint 2019 OWA,基于OWA需要单独的Windows serve来安装和部署,接下来就通过Hyper-V来创建一台服务器吧 [OWA]01环境准备:通过 ...
- libreoffice 01 windows 版本编译
01 基本信息 目前office开源版本主流是 libreoffice.其前身是openoffice. 官网:https://zh-cn.libreoffice.org/ wiki: https:// ...
- Windows Mobile开发总结 01
http://www.cnblogs.com/peterzb/archive/2009/08/09/1542451.html Windows Mobile开发总结 Posted on 2009-08- ...
最新文章
- 如何让类对象只在栈(堆)上分配空间?(转)
- Hibernate关联查询
- spg app android,GitHub - spgwzp/AndEsptouch: esptouch for android ,ESP8266网关配对
- windows系统禁止更改服务启动类型_Win10系统关闭自动更新方法
- 响应式网格项目动画布局_响应式网格及其实际使用方式:常见的UI布局
- ASP.NET Core 3.x - 为什么采用新的 Endpoint Routing 路由系统
- 05设计模式——抽象工厂模式
- MyBatis获取参数值的两种方式以及传参情况
- 阿里云数据库RDS MySQL 物理全备文件数据恢复至自建数据库Mysql 5.7中
- 成为一名初级游戏策划
- Jar包的理解与应用
- 播布客里小布老师的所有视频收集
- ESP8266开启热点和TCP Server
- 股市一跌再跌,是在提醒我们什么?
- 2022“美亚杯”第八届中国电子数据取证大赛-团队赛题目
- 这些都是无轴螺旋输送机稳定运行的必要条件!
- 【SSL 协议介绍】
- 圣人与凡人 结束与解脱
- Audience Insights被下架后,Facebook广告定位的最佳替代方案
- 衢州计算机网络技术,衢州广播电视大学计算机网络技术专业_浙江报名_网络教育计算机网络技术专业教学计划_中国教育在线...