我的第一个win32窗口程序------------记录
// Myday03.cpp : 定义应用程序的入口点。
//
#include "stdafx.h"
#include "Myday03.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance ,
LPSTR lpCmdLine ,
int nCmdShow )
{
LPCTSTR myLpszClassName = (LPCWSTR )_T("MainWin");
LPCTSTR myWndTitle = (LPCWSTR )_T("我的第一个窗口");
/*
typedef struct _WNDCLASS {
UINT style;// 窗口类型
WNDPROC lpfnWndProc;//窗口处理函数
int cbClsExtra;//窗口扩展
int cbWndExtra;//窗口实例扩展
HINSTANCE hInstance;//实例句柄
HICON hIcon;//窗口的最小化图标
HCURSOR hCursor;//窗口鼠标光标
HBRUSH hbrBackground;//窗口背景色
LPCTSTR lpszMenuName;//窗口菜单
LPCTSTR lpszClassName;// 窗口类名
} WNDCLASS, *LPWNDCLASS;
typedef struct WNDCLASSEX {
UINT cbSize; //WNDCLASSEX 的大小。我们可以用sizeof(WNDCLASSEX)来获得准确的值。
UINT style; //从这个窗口类派生的窗口具有的风格。您可以用“or”操作符来把几个风格或到一起。
WNDPROC lpfnWndProc;//窗口处理函数的指针。
int cbClsExtra; //指定紧跟在窗口类结构后的附加字节数。
int cbWndExtra; //指定紧跟在窗口实例的附加字节数。如果一个应用程序在资源中用CLASS伪指令注册一个对话框类时,则必须把这个成员设成DLGWINDOWEXTRA。
HINSTANCE hInstance; //本模块的实例句柄。
HICON hIcon; //图标的句柄。
HCURSOR hCursor; //光标的句柄。
HBRUSH hbrBackground; //背景画刷的句柄。
LPCTSTR lpszMenuName; //指向菜单的指针。
LPCTSTR lpszClassName; //指向类名称的指针。
HICON hIconSm; //和窗口类关联的小图标。如果该值为NULL。则把hIcon中的图标转换成大小合适的小图标。
} WNDCLASSEX, *PWNDCLASSEX;
*/
WNDCLASSEX wce{};//增强版WNDCLASS
wce.cbSize = sizeof(wce);
wce.style = CS_HREDRAW | CS_VREDRAW ;
/*
DefWindowProc 这个函数是默认的窗口处理函数,我们可以把不关心的消息都丢给它来处理。
这个函数在处理关闭窗口消息WM_CLOSE时,是调用DestroyWindow函数关闭窗口并且发WM_DESTROY消息给应用程序;而它对WM_DESTROY这个消息是不处理的(考虑为什么?);
我们在应用程序中对这个消息的处理是发出WM_QUIT消息。因此WM_CLOSE、WM_DESTROY、WM_QUIT这三个消息是先后产生的。
hWnd:指向接收消息的窗口过程的句柄。
Msg:指定消息类型。
wParam:指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。
IParam:指定其余的、消息特定的信息。该参数的内容与Msg参数值有关。
返回值:返回值就是消息处理结果,它与发送的消息有关。
DefWindowProc // 默认的窗口消息处理程序
*/
//wce.lpfnWndProc = hInstance;
wce.lpfnWndProc = DefWindowProc;
wce.cbClsExtra = 0;
wce.cbWndExtra = 0;
wce.hInstance = hInstance;
wce.hIcon = NULL;
wce.hCursor = NULL;
wce.hbrBackground = GetSysColorBrush( COLOR_3DFACE);
wce.lpszMenuName = NULL;
wce.lpszClassName = myLpszClassName;
wce.hIconSm = NULL;
ATOM nAtom = RegisterClassEx (&wce);
if (nAtom == 0){
MessageBox(NULL , _T("注册失败"), _T("错误信息" ), MB_OK);
return 0;
}
/*
WND CreateWindowEx(
_In_ DWORD DdwExStyle, //窗口的扩展风格
_In_opt LPCTSTR lpClassName, //指向注册类名的指针
_In_opt LPCTSTR lpWindowName, //指向窗口名称的指针
_In_ DWORD dwStyle, //窗口风格
_In_ int x, //窗口的水平位置
_In_ int y, //窗口的垂直位置
_In_ int nWidth, //窗口的宽度
_In_ int nHeight, //窗口的高度
_In_opt_ HWND hWndParent, //父窗口的句柄
_In_opt_ HMENU hMenu, //菜单的句柄或是子窗口的标识符
_In_opt_ HINSTANCE hInstance, //应用程序实例的句柄
_In_opt_ LPVOID lpParam //指向窗口的创建数据
);
*/
HWND mainHWnd = CreateWindowEx (WS_EX_ACCEPTFILES, myLpszClassName, myWndTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT , CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL , NULL, hInstance, NULL);
CreateWindowEx(WS_EX_ACCEPTFILES ,
myLpszClassName,
myWndTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
mainHWnd,
NULL,
hInstance,
NULL);
/*
该函数设置指定窗口的显示状态。
hWnd:指窗口句柄。
nCmdShow:指定窗口如何显示。
*/
ShowWindow(mainHWnd, SW_SHOW);
MSG nMsg {};
while (GetMessage (&nMsg, NULL, 0, 0))
{
TranslateMessage(&nMsg);
DispatchMessage(&nMsg);
}
return TRUE ;
}
转载于:https://blog.51cto.com/quietnight/1753122
我的第一个win32窗口程序------------记录相关推荐
- 第一个 Win32 窗口程序
第一个 Win32 窗口程序 程序骨架 int WinMain(){ // 设计窗口外观及交互响应,注册,申请专利RegisterClass(...) ;// 生产窗口 CreateWindow(.. ...
- 让Win32窗口程序拥有控制台窗口
让Win32窗口程序拥有控制台窗口 首先,为什么我们有了普通窗口后还要控制台窗口呢?因为我们可以用它方便的输出调试信息,而且普通玩家看到了也会觉得很高端.如果他会输几条命令,可能他会以为自己就是黑客了 ...
- Win32窗口程序实例
转自:http://blog.csdn.net/earbao/article/details/8638348 <pre name="code" class="cpp ...
- WinAPI入门: 第一个标准Win32窗口程序 [改进详细注释版]
WinAPI入门: 第一个标准Win32窗口程序 下载链接: 若想立即看到本程序的运行结果,可点击EXE文件的免费下载链接; HelloWin_v1.sfx.exe;–带语音和背景音乐; 相关链接: ...
- java考勤程序,请为一个公司编写程序记录公司员工出勤情况
员工可通过客户端向服务器端发送数据表示到达公司,服务端发送消息确认,统计所有员工出勤情况,存放于一个指定文件中. 用UDP做法: 服务器端: import java.io.BufferedWriter ...
- C语言结构体和结构体数组示例 - Win32窗口程序演示
C语言结构体和结构体数组的使用: /* C结构体和结构体数组示例,by bobo */#include <windows.h>LRESULT CALLBACK WndProc (HWND, ...
- 最简单的DX窗口程序
一.下载DX装起来:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6812 二.创建一个Win32窗口 ...
- 一个Win32程序的进化
作者:刘铁猛 日期:2005-12-13 关键字: Win32 API 入门 声明:如果阁下想转载,在转载的时候烦劳阁下连同在下的姓名一起转载,并向[email]bladey@tom.com[/ema ...
- 创建一个最简单的win32应用程序
创建一个最简单的win32应用程序 使用的是vs2013 中文版 首先创建一个win32 应用程序 工程 也可以使用快捷键 Ctrl+Shift +N 创建的工程名字是 HelloApp 下一步 建立 ...
最新文章
- Fragment 和 FragmentActivity的使用
- Xcode8 及iOS10适配问题汇总
- 微信小程序项目,实现图书搜索组件完善
- JAVA高精度计算工具
- ESIM (Enhanced LSTM for Natural Language Inference)
- 什么是saashrm
- 《Python Cookbook 3rd》笔记(4.7):迭代器切片
- mybatis可以生成不重复的id吗_Mybatis面试题吐血总结
- 引擎设计跟踪(九.2) 3DS MAX 导出插件 继续
- 机器学习基础:逻辑回归(Machine Learning Fundamentals: Logistic Regression)
- MATLAB视频转图片保存
- 工程点点app爬虫和sign算法破解
- UDP包导致大量ARP报文的问题处理
- 售价6815万元,95后加密艺术家推出“Dream Chaser”NFT系列作品
- TP-LINK TL-WDN6200在Ubuntu 1804下使用
- BeautifulSoup里“find_all“和“findAll“的区别
- Thrill: 基于C++的高性能分布式批处理算法
- [Python中pandas实现独热编码][pd.get_dummies()函数]
- 【网站国际化必备】Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo...
- 转移到ios下载安卓_转移到ios官方app下载|转移到IOS安卓版下载_v2.10.0_9ht安卓下载...
热门文章
- 使用restTemplate的post请求传输文件与文件数组
- Laravel5.6使用定时任务实现定时发邮件
- windows——批处理文件(.bat)详解
- winxp sp3专业版密匙-激活码
- 快速md5校验脚本linux,shell-更新文件并md5校验
- 第十一天堂的学习笔记Ubuntu第一篇,分区安装,设置root密码,安装五笔和VMtools
- Broadcast(广播)和BroadcastReceiver(广播接收器)
- linux取消挂载并将分区释放,linux硬盘分区:分区,格式化,挂载,取消挂载,删除分区...
- HTML5使用Geoloacation API检测浏览器的支持性
- Bentley ORD(openroads designer) 二次开发(BIM)第四节 界面设计数据绑定