2015-08-02 2 views
-1

Мне нужно сделать изменяемое по размеру окно с кругом внутри него, которое также должно быть изменено по размеру, т. Е. Если окно будет увеличено, оно должно стать больше, а если оно будет уменьшено, оно станет меньше.Изменение размера окна с изменяемым размером круга

Я сделал простое окно, используя windows.h в C++, который изменяет размер. Теперь как мне изменить размер круга относительно окна?

Один подход, я подумал, что если я получаю текущий размер окна я буду иметь возможность регулировать радиус accordingly.But ....

Для получения текущего размера окна, я использовал GetWindowRect(), но он работает только, когда я растягиваю окно. Когда я сжимаю его, он не работает.

Так что, пожалуйста, выясните это. Спасибо заранее!

+0

Вам нужно сделать это с помощью C++? потому что, если вы используете C# и wpf, это так просто. – aisa

+0

Разрешен только C++. – fictionalguy

ответ

0

Вы можете поиграть с 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 

} 
+0

Мне нужно изменить размер окна api, а не консоль – fictionalguy