Windows游戏编程:窗口

基于Windows的游戏,不可避免的,首先要实现一个Windows窗口


通过看书学习,Windows窗口中实现的机制是很复杂的,但代码上、步骤上还是条理清晰易懂的。即便不懂里面的机制,设计一个简单的windows窗口还是比较简单的。

我贴上自己写的(照书上打的)一个简单窗口代码:

(PS:其中有很多都没去实现,只是简单的实现一个Windows窗口。)

#include<Windows.h>
#include<iostream>
using namespace std;

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	WNDCLASS wc;
	wc.cbClsExtra = 0;
	wc.cbWndExtra = 0;
	wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
	wc.hIcon = LoadIcon(NULL, IDI_QUESTION);
	wc.style = CS_HREDRAW | CS_VREDRAW;
	wc.lpfnWndProc = WndProc;
	wc.hInstance = hInstance;
	wc.lpszMenuName = NULL;
	wc.lpszClassName = (const WCHAR*) "d3dWindow";

	//注册Windows类
	if (!RegisterClass(&wc))
		return -1;

	RECT rc = { 0,0,640,480 };                       
	AdjustWindowRect(&rc, WS_OVERLAPPEDWINDOW,false);

	//创建窗口
	HWND hwnd = CreateWindow((const WCHAR*)"d3dWindow", L"Hello Word", WS_OVERLAPPEDWINDOW, 0, 0, rc.right-rc.left,rc.bottom-rc.top, 0, 0, hInstance, 0);
	//if (!hwnd)
		//return -1;

	ShowWindow(hwnd,SW_SHOWNORMAL);
    
	MSG msg = { 0 };
	while (msg.message != WM_QUIT)
	{
		if (GetMessage(&msg,NULL,0,0))
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
	}
	return static_cast<int>(msg.wParam);
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	HDC hdc;
	switch (message)
	{
	case WM_CHAR:
		break;
	case WM_LBUTTONDOWN:
		break;
	case WM_PAINT:;
		break;
	case WM_CLOSE:
   		break;
	case WM_DESTROY:
		break;
	default:
		return DefWindowProc(hwnd, message, wParam, lParam);
	}
	return 0;
}

编译运行,实现窗口!




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值