程序拉伸

0

我在以前的提问中发现了一个贴吧链接。我已按他的教程写好了代码,是他gif里的那样。

但是,那个仅用于测试,更深层次的UI界面、png素材、鼠标操作,无法按他的示例完成。

我想要的效果:想其他程序一样,自动缩放。

有没有圣魔代码可以实现?

附:我的demo

#include <graphics.h>
#include <conio.h>
static WNDPROC OldProc;
static WORD nWidth, nHeight;
static bool Size_Flag = 0;
LRESULT CALLBACK NewProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
	case WM_SIZE:
	{
		nWidth = LOWORD(lParam);
		nHeight = HIWORD(lParam);
		Size_Flag = 1;
	}
	default:
	{
		return CallWindowProc(OldProc, hwnd, message, wParam, lParam);
	}
	}
}
HWND New_Draw_Window(int Width, int Hwight)
{
	HWND Draw_Window = initgraph(Width, Hwight);
	long oldstyle = GetWindowLong(Draw_Window, GWL_STYLE);
	SetWindowLong(Draw_Window, GWL_STYLE, oldstyle | WS_MAXIMIZEBOX | WS_SIZEBOX);
	OldProc = (WNDPROC)GetWindowLong(Draw_Window, GWL_WNDPROC);
	SetWindowLong(Draw_Window, GWL_WNDPROC, (LONG)NewProc);
	return Draw_Window;
}
int main()
{
	New_Draw_Window(1152, 648);														//创建画布
	nWidth = getwidth();
	nHeight = getheight();
	setbkcolor(GREEN);
	setlinecolor(RED);
	while (1)
	{
		if (Size_Flag)
		{
			Resize(NULL, nWidth, nHeight);
			Size_Flag = 0;
		}
		BeginBatchDraw();
		cleardevice();
		circle(nWidth/2, nHeight/2, 10);	// 画圆,圆心(200, 200),半径 100
		EndBatchDraw();
	}
	closegraph();			// 关闭绘图窗口
	return 0;
}
ava
Forest

2020-4-2

0

不建议这么做。这样的后果是不确定的。
建议不要花太多心思在这些小技巧上。写一些小游戏比如七巧板什么的远比这个有意义。

ava
慢羊羊

2020-4-2

额………………好吧 -  Forest  2020-4-2
技术讨论社区
相关提问