C++ 如何获取窗口大小(宽度和高度)?

Jes*_*nez 3 c++

我正在尝试创建一个图表,我需要知道用户运行代码的窗口的大小。我正在尝试缩放数据,以便数据仅显示在窗口的大小上,而无需换行或滚动. 我在 Windows 上,但我想使用类似于 Linux 的东西

int lines = atoi(getenv("LINES") ;
int cols  = atoi(getenv("COLUMNS") ;
Run Code Online (Sandbox Code Playgroud)

所以我可以缩放数字并显示这样的图表

320 a ============================================================
160 b ==============================
 80 c ===============
 40 d =======
 20 e ===
 10 f =
  5 g 
  2 h 
  1 i 
  2 j 
 17 k ===
 41 l =======
 67 m ============
 97 n ==================
127 o ========================
157 p =============================
191 q ====================================
227 r ===========================================
257 s ================================================
283 t =====================================================
331 u ==============================================================
367 v =====================================================================
373 w ======================================================================
379 x ========================================================================
383 y ========================================================================
389 z ==========================================================================
Run Code Online (Sandbox Code Playgroud)

有什么东西可以在 Windows 和 Linux 上运行吗?我正在使用 Visual Studio 2012。

小智 6

使用 GetWindowRect

RECT rect;
if(GetWindowRect(hwnd, &rect))
{
  int width = rect.right - rect.left;
  int height = rect.bottom - rect.top;
}
Run Code Online (Sandbox Code Playgroud)


Zuu*_*Zuu 1

使用GetConsoleScreenBufferInfo或其同级之一。您对“返回”结构的 dzSize 字段感兴趣。阅读此处的文档:http://msdn.microsoft.com/en-us/library/windows/desktop/ms683171 (v=vs.85).aspx