可调整大小的窗口与可调整大小的圆圈

Resizable window with resizable circle

本文关键字:可调整 窗口      更新时间:2023-10-16

我必须创建一个可调整大小的窗口,里面有一个圆圈,它也应该是可调整大小的,也就是说,如果窗口变大,它就会变大,如果窗口变小,它就会变小。

我用c++中的windows.h做了一个简单的窗口,可以调整大小。现在我该如何根据窗口调整圆的大小呢?

一种方法我认为,如果我得到了窗口的当前大小,我就可以相应地调整半径。但是....

对于获得窗口的当前大小,我使用了GetWindowRect(),但它只在我拉伸窗口时起作用。当我收缩它时,它不工作。

所以请把它弄清楚。提前感谢!

您可以使用Width, Height不重要,因为我们有Width作为圆的半径。

// Use SetWindows(Width 1~100, Height 1~100) in main()
void SetWindows(int Width,int Height){
    _COORD coord;
    coord.X=Width;
    coord.Y=Height;
    _SMALL_RECT Rect;
    Rect.Top=0;
    Rect.Left=0;
    Rect.Bottom=Height-1;
    Rect.Right=Width-1; //18
    HANDLE Handle=GetStdHandle(STD_OUTPUT_HANDLE);      // Get Handle
    SetConsoleScreenBufferSize(Handle,coord);           // Set Buffer Size
    SetConsoleWindowInfo(Handle,TRUE,&Rect);            // Set Window Size
    DrawCircle(Width);
}
void DrawCircle(int Radius){
    // Draw Circle here, radius provided
}