你的第一个windows程序

#include <Windows.h>

//全局窗口句柄
HINSTANCE hins = 0;
//全局的标准输出句柄
HINSTANCE houtput = 0;

//消息处理函数
void onCreate(HWND hWnd,WPARAM wParam)
{
	MessageBox(hWnd,"窗口已被创建","INFOR",MB_OK);
}

//窗口处理函数
LRESULT CALLBACK WndProc(HWND hWnd,UINT msgID,WPARAM wParam,LPARAM lParam)
{
	switch(msgID)
	{
	case WM_CREATE:
		OnCreate(hWnd, wParam);  
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	}
	return DefWindowProc( hWnd, msgID, wParam, lParam);
}

//入口函数  主窗口句柄  前一个窗口的句柄  命令行字符串   窗口的显示方式
int CALLBACK WinMain(HINSTANCE hIns,HINSTANCE PreIns,LPSTR IpCmdLine,int nCmdShow)
{
	//将主窗口句柄设为全局变量
	hins = hIns;
	//获取标准输出句柄
	houtput = GetStdHandle(STD_OUTPUT_HANDLE);
	//注册窗口类
	WNDCLASS wc={0};
	wc.cbClsExtra = 0;
	wc.cbWndExtra = 0;
	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
	wc.hCursor = NULL;
	wc.hIcon = NULL;
	wc.hInstance = hIns;
	wc.lpfnWndProc = WndProc;
	wc.lpszClassName = "Main";
	wc.lpszMenuName = NULL;
	wc.style = CS_HREDRAW | CS_VREDRAW;
	//将上述赋值信息全部写入操作系统的内核
	RegisterClass(&wc);
	//在内存中创建窗口
	HWND hWnd = CreateWindow("Main","window",WS_OVERLAPPEDWINDOW,100,100,500,500,NULL,NULL,hIns,NULL);
	//显示窗口
	ShowWindow(hWnd,SW_SHOW);
	UpdateWindow(hWnd);
	//消息循环
	MSG msg={0};
	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return 0;
}

/*
注意: 
	1.WM_CREATE消息的产生是在窗口创建成功但还未显示的时候
	2.设置窗口关闭的动作处理
		此处选用WM_DESTROY消息进行处理
		用PostQuitMessage函数向消息队列中扔一个WM_QUIT消息
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值