我已經看過處理這個東西的繪圖的代碼(DFCS_SCROLLSIZEGRIP
),但肯定有一個窗口樣式,我可以申請「免費」。對?顯示CDialog中的大小抓地力?
2
A
回答
3
爲了代替更好的答案,我會發布代碼,我繪製了大小的抓地力,並處理命中測試。您還需要在OnSize過程中使適當的區域無效以重新繪製。
BOOL CMyDialog::OnEraseBkgnd(CDC* pDC)
{
if (CDialog::OnEraseBkgnd(pDC))
{
// draw size grip
CRect r;
GetClientRect(&r);
int size = GetSystemMetrics(SM_CXVSCROLL);
r.left = r.right - size;
r.top = r.bottom - size;
pDC->DrawFrameControl(&r, DFC_SCROLL, DFCS_SCROLLSIZEGRIP);
return TRUE;
}
else
{
return FALSE;
}
}
-
LRESULT CMyDialog::OnNcHitTest(CPoint point)
{
// return HTBOTTOMRIGHT for sizegrip area
CRect r;
GetClientRect(&r);
int size = GetSystemMetrics(SM_CXVSCROLL);
r.left = r.right - size;
r.top = r.bottom - size;
ScreenToClient(&point);
if (r.PtInRect(point))
{
return HTBOTTOMRIGHT;
}
else
return CDialog::OnNcHitTest(point);
}
0
我不認爲這是一個默認的風格讓這個功能是免費的。您必須創建一個類名爲Scrollbar
和控件樣式的新子窗口SBS_SIZEGRIP
0
除了上面提到的OnEraseBkgnd和OnNcHitTest,您需要在窗口大小時使夾點區域無效,否則會在放大時留下標記:
void CMyDialog::OnSize(UINT nType, INT cx, INT cy)
{
CRect rc;
int iSize=GetSystemMetrics(SM_CXVSCROLL);
GetClientRect(rc);
InvalidateRect(CRect(rc.left-iSize, rc.bottom-iSize, rc.right, rc.bottom), FALSE);
CDialog::OnSize(nType, cx, cy);
}
相關問題
- 1. 如何顯示非模態CDialog?
- 2. CDialog不顯示在任務欄
- 3. 顯示圖片的大小
- 4. 力雙顯示2位小數
- 5. 當拖動NSView時失去抓地力
- 6. 阻止CDialog的最大化/最小化按鈕的動作
- 7. PhantomJS中的webdriver顯示大小
- 8. 在CListCtrl中顯示文件的大小
- 9. 火力地堡控制檯不顯示
- 10. 火力地堡顯示數據
- 11. 顯示java.lang.NullPointerException而從火力地堡
- 12. 字數,表單大小,在html中顯示的東西大小
- 13. 減小UITextView的大小以顯示UIButton
- 14. 谷歌地圖只顯示在它的大小得到調整大小
- 15. Jquery可調整大小顯示大小,同時調整大小
- 16. 顯示大小和格式
- 17. 調整Xvfb顯示大小
- 18. 只顯示LV大小?
- 19. AnimatedSprite顯示大小錯誤
- 20. 火力地堡用戶界面不顯示在火力
- 21. 如何在CDialog彈出窗口中顯示系統菜單?
- 22. 顯示權力(2,3,4等的權力)?
- 23. FileList在IE9中沒有顯示大小
- 24. 在django中顯示文件大小admin
- 25. 在zeppelin中顯示全列大小sql
- 26. 在Python中獲取顯示器大小
- 27. 大葉地圖不顯示
- 28. 在地圖上顯示恆定大小的疊加層
- 29. CSS:改變段落的字體大小顯示H1的大小
- 30. Android:身份不顯示時顯示大小小