![](/img/trans.png)
[英]How to get width and height from CreateWindowEx() window? C++
[英]C++ How to get the window size (width and height)?
我正在嘗試創建一個圖形,我需要知道用戶在其中運行代碼的窗口的大小。我正在嘗試縮放數據,以便數據僅在窗口的大小上顯示,而沒有環繞或滾動。 我在Windows上,但我想使用與Linux類似的工具
int lines = atoi(getenv("LINES") ;
int cols = atoi(getenv("COLUMNS") ;
所以我可以縮放數字並顯示這樣的圖形
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 ==========================================================================
在Windows和Linux上是否有可以使用的功能? 我正在使用Visual Studio 2012。
使用GetWindowRect
RECT rect;
if(GetWindowRect(hwnd, &rect))
{
int width = rect.right - rect.left;
int height = rect.bottom - rect.top;
}
使用GetConsoleScreenBufferInfo或其同級之一。 您被“返回”結構的dzSize字段困住了。 在此處閱讀文檔: http : //msdn.microsoft.com/zh-cn/library/windows/desktop/ms683171(v=vs.85).aspx
您已經有Linux解決方案。
在Windows上,您需要的API調用是GetConsoleScreenBufferInfo
。
這將返回CONSOLE_SCREEN_BUFFER_INFO
結構,您從中讀取dwSize
成員:
一個COORD結構,其中包含控制台屏幕緩沖區的大小(以字符列和行表示)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.