看板 C_and_CPP 關於我們 聯絡資訊
在windows上 取得桌面的大小 但扣掉最下方"開始"那一行的大小。 用 GetSystemMetrics(SM_CXSCREEN); GetSystemMetrics(SM_CYSCREEN); 只是取得屏幕解析度啊。。。 還是不知道桌面大小為何。 那請問要調用那個API才能查詢呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.158.204
kazuto:扣掉開始的Client area 大小就好 12/21 18:48
stupid0319:桌面大小是指什麼? 12/21 18:53
tropical72:重點應是在於取得工作列上的高度,(因寬度和桌面寬一樣) 12/21 19:16
tropical72:HWND hWnd = FindWindow("Shell_TrayWnd", NULL); 12/21 19:16
tropical72:RECT rc; ::GetWindowRect(hWnd, &rc); 12/21 19:16
tropical72:int iHeight = rc.bottom -rc.top; 12/21 19:17
tropical72:第一行的 "Shell_TrayWnd" 就是取得工作列的 handle 12/21 19:17
tropical72:其它的相信你知道怎麼做 :) 12/21 19:18
LPH66:話說並不是所有人的工作列都在下面... 12/21 19:24
LPH66:不過這只要判斷一下就知道了 並不是大問題 12/21 19:24
tropical72:LPH66 沒說我還真忘了這件事,不過用同樣方法也是能得到 12/21 19:54
DrStein:謝謝 真的有用 感恩啊 12/23 17:28
ljhgc:SystemParametersInfo( SPI_GETWORKAREA, 0, &rect, 0 ); 12/24 13:28
DrStein:用SystemParametersInfo可以讓code比較clean :D 12/27 16:14