2012-07-26 78 views
0

我有一個顯示圖像的自定義控件。當圖像超出可顯示的尺寸時,它會顯示滾動條。出於某種原因,我想知道是否顯示水平或垂直滾動​​條。我無法在CWnd課程中找到任何直接功能。我發現GetScrollBarInfo但沒有運氣檢查。這裏是代碼:如何知道CWnd滾動條是否可見?

SCROLLBARIINFO stHSBInfo; 
GetScrollBarInfo(this->GetSafeHwnd(), OBJID_HSCROLL, &stHSBInfo); 
if( !(STATE_SYSTEM_INVISIBLE &stHSBInfo.rgstate[0])) // Always true 
{ 
    // Code 
} 

請幫忙!

+1

這是什麼?哪個對象實例指向?您必須將'GetScrollBarInfo'函數的句柄傳遞給包含滾動條的窗口。 – 2012-07-26 12:29:31

+0

結構是否正在初始化? – 2012-07-26 21:22:11

+0

@CodyGray'this'是包含滾動條的窗口 – 2012-07-27 07:20:22

回答

0

使用GetSystemMetrics獲取系統滾動條寬度的大小。 比較GetWindowRect和GetClientRect之間的自定義控件大小。 如果差異大於滾動條寬度的大小,則是可見的。

+1

嗯,如果在佔用該空間的窗口的非客戶端區域中除了滾動條之外還有別的東西*會怎麼樣? – 2012-07-26 23:38:16

相關問題