怎样改变屏幕分辨率实现全屏

1

我们可以获取屏幕的分辨率,但是为了更好的呈现程序界面,如何在运行程序时,改变电脑本身的分辨率,达到全屏的效果。

虽然可以通过获取电脑分辨率的大小来改变程序,但是我发现,改变程序得不偿失,还不如直接改变电脑的分辨率。虽然有先例(红警游戏)就是改变电脑的分辨率,但是不知道他是如何实现的。望得到高人指点。

ava
简单

2020-10-5

0

不推荐改变屏幕分辨率。如果你一定要这么做,可以这样:

  1. 加入 DirectX 所需的动态链接库
#include <ddraw.h>
#pragma comment (lib,"ddraw.lib")

2. 调用以下改变屏幕分辨率的函数

bool ChangeDisplaySize(int cx, int cy)	// 分辨率设置为 cx × cy,退出程序时自动还原
{
	LPDIRECTDRAW DXW;
	HRESULT ddrval;
	ddrval = DirectDrawCreate(NULL, &DXW, NULL);
	if (DD_OK != DD_OK) return FALSE;	// 创建DirectDraw对象失败返回
	ddrval = DXW->SetCooperativeLevel(NULL, DDSCL_NORMAL);
	if (DD_OK != DD_OK) return FALSE;	// 取得窗口模式失败返回
	ddrval = DXW->SetDisplayMode(cx, cy, 16);
	if (DD_OK != DD_OK) return FALSE;	// 设置显示模式失败返回
}
ava
慢羊羊

2020-10-5

技术讨论社区