我在以前的提问中发现了一个贴吧链接。我已按他的教程写好了代码,是他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;
}