#include <windows.h>

HINSTANCE g_hInst = NULL;

//2 窗口处理函数
LRESULT CALLBACK WndProc( HWND hWnd,
UINT nMsg,
WPARAM wParam,
LPARAM lParam )
{
//判断消息ID
switch( nMsg )
{
case WM_DESTROY: //窗口销毁的消息
PostQuitMessage( 0 ); //发送退出消息
return 0;
}
//调用缺省的消息处理程序
return DefWindowProc( hWnd, nMsg,
wParam, lParam );
} //3 注册窗口类型
BOOL MyRegister( LPSTR pszClassName )
{
WNDCLASS wc = {0};
ATOM nAtom = 0;
//构造注册窗口的参数
wc.style = CS_VREDRAW|CS_HREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = g_hInst;
wc.hIcon = NULL;
wc.hCursor = NULL;
wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE);
wc.lpszMenuName = NULL;
wc.lpszClassName = pszClassName;
//注册窗口
nAtom = RegisterClass( &wc );
if( 0 == nAtom )
{
MessageBox( NULL, "Register Failed",
"Error", MB_OK|MB_ICONWARNING );
return FALSE;
}
return TRUE;
} //4 窗口创建
HWND MyCreate( LPSTR pszClassName )
{
HWND hWnd = NULL;
//创建窗口
hWnd = CreateWindow( pszClassName,
"HelloWnd", /*WS_OVERLAPPEDWINDOW*/WS_POPUP,
0, 0, 800, 600, NULL, NULL,
g_hInst, NULL );
if( NULL == hWnd )
{
MessageBox( NULL, "CreateWnd Failed",
"Error", MB_OK );
return NULL;
} return hWnd;
} //5 显示窗口
void DisplayWnd( HWND hWnd )
{
//显示
ShowWindow( hWnd, SW_SHOW );
//刷新
UpdateWindow( hWnd );
}
//6 消息处理
void Message( )
{
MSG msg = { 0 };
//消息循环处理,获取消息
while( GetMessage( &msg, NULL, 0, 0 ) )
{
//派发消息
DispatchMessage( &msg );
}
}
//1 入口函数
int WINAPI WinMain( HINSTANCE hInst,
HINSTANCE hPrevInst,
LPSTR pszCmdLine,
int nShowCmd )
{
HWND hWnd = NULL;
g_hInst = hInst;
//注册窗口类型
MyRegister( "MyWnd" );
//创建注册类型的窗口
hWnd = MyCreate( "MyWnd" );
//显示窗口
DisplayWnd( hWnd );
//消息处理
Message( );
return 0;
}

最简单的一个win32程序的更多相关文章

  1. 一个Win32程序的进化------转载

    一个Win32程序的进化 转载 weixin_34273046 发布于2017-11-15 10:53:00 阅读数 10 收藏 展开 一.为什么要学Win32     要回答这个问题,我们就要先搞清 ...

  2. OD调试1--第一个win32程序

    OD调试一:第一个Win32程序的修改 在软件开发的过程中,程序员会使用一些调试工具,以便高效地找出软件中存在的错误.而在逆向分析领域,分析者也会利用相关的调试工具来分析软件的行为并验证分析结果.由于 ...

  3. 在cmd启动一个win32程序,printf把信息输出到启运它的那个CMD窗口

    #define ProcessBasicInformation 0 typedef struct { DWORD ExitStatus; DWORD PebBaseAddress; DWORD Aff ...

  4. 第一个win32程序

    vs2017下自动创建的窗口程序 // win_test.cpp : 定义应用程序的入口点. // #include "framework.h" #include "wi ...

  5. NET简单的一个画图程序

    using System; using System.Drawing; //HttpUtility.UrlEncode /// <summary> ///Curve 的摘要说明 /// & ...

  6. Win32程序支持命令行参数的做法(转载)

    转载:http://www.cnblogs.com/lanzhi/p/6470406.html 转载:http://blog.csdn.net/kelsel/article/details/52759 ...

  7. Win32程序支持命令行参数的做法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 首先说说Win 32 API程序如何支持命令行参数.Win 32程序的入口函数为: int APIENTRY _tWi ...

  8. 什么是消息循环,一个简单的win32程序如何运行?

    预备知识 1.什么是句柄? (HANDLE) 在win32编程中有各种句柄,那么什么是句柄呢? #define DECLARE_HANDLE(name) struct name##_ { int un ...

  9. Win32 程序开发入门:一个最简单的Win32程序

    一.什么是 Win32 Win32 是指 Microsoft Windows 操作系统的 32 位环境,与 Win64 都为 Windows 常见环境. 这里再介绍下 Win32 Applicatio ...

随机推荐

  1. docker安装mysql挂载外部配置和数据目录

    从docker hub上可以找到mysql外挂配置和数据目录的一些文档说明 https://hub.docker.com/_/mysql 从该文档中可以了解到,mysql的默认配置为/etc/mysq ...

  2. 高性能高可用的微服务框架TarsGo的腾讯实践

    conference/2.3 高性能高可用的微服务框架TarsGo的腾讯实践 - 陈明杰.pdf at master · gopherchina/conferencehttps://github.co ...

  3. 如何在国内使用google

    而Google却一直坚持“机器算法”至上,让信息以公正的排序结果呈现,对于IT人员来说国内不能用google进行搜索是很痛苦的. 公司邮件介绍了一些方法,mark一下还是很有用的. http://ww ...

  4. ERS:百科

    ylbtech-ERS:百科 ERS=(Enterprises Run System)企业运行系统 企业运行系统-ERS,是继ERP系统之后的企业管理控制软件系统的终极形式,有着非常美好的市场前景,尤 ...

  5. 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_15.RabbitMQ研究-与springboot整合-声明交换机和队列

    复制topic的代码 把常量都设置成public方便其他的类引用 ExchangeBuilder里面有4个方法分别对应四个交换机. 声明Email和短信的队列 队列绑定交换机 所以需要把Bean注入到 ...

  6. 图解 HTTP 笔记(六)——HTTP 首部

    本章主要讲解了 HTTP 首部的结构,已经首部中各字段的用法. 一.HTTP 报文首部 上图是 HTTP 请求报文的结构. HTTP 请求报文由方法.URI.HTTP 版本.HTTP 首部字段等组成. ...

  7. MLN 讨论 —— 基础知识

    一. MLN相关知识的介绍 1. First-order logic A first-order logic knowledge base (KB) is a set of formulas in f ...

  8. Nginx sticky模块实现session粘滞

    一:下载,解压nginx sticky模块. 1 2 3 # cd /usr/local/src # wget http://nginx-sticky-module.googlecode.com/fi ...

  9. python、java、ruby、node等如何提取office文档中的内容?

    我相信大家都有过这样的需求,把doc.ppt.excel.pdf.txt中的文本内容提取出来.提取出来的文本内容可用于文档内容的全文索引,文档的基本内容摘要等.在度娘上搜索“如何提取文档内容”,确实有 ...

  10. Galileo:一款开源Web应用审计框架

    转载自FreeBuf.COM Galileo是一款针对Web应用程序的开源渗透测试工具,可帮助开发和渗透测试人员识别并利用其Web应用程序中的漏洞. 截图 安装 $ git clone https:/ ...