0
請考慮以下部分代碼。我的問題是滾動條不與矩形對齊。我得到一個矩形和一個滾動條,兩者之間有很大的差距。我想我可以嘗試一下,找出「偏移量」是什麼,只是把它放進去,但我想明白爲什麼滾動條顯然不符合座標。CreateWindow滾動條對齊問題
hCDC = GetDC(hCWnd);
bkgBrush = CreateSolidBrush(BGColor);
SetMapMode(hCDC, MM_TEXT);
SelectObject(hCDC, bkgBrush);
Rectangle(hCDC, VTRect->left, VTRect->top, VTRect->right, VTRect->bottom);
iHThumb = GetSystemMetrics(SM_CXHTHUMB);
iVThumb = GetSystemMetrics(SM_CYVTHUMB);
hInstance = NULL;
if(hWndVertScroll)
DestroyWindow(hWndVertScroll);
hWndVertScroll = CreateWindow(
"Scrollbar",
(LPSTR)NULL,
WS_CHILD | WS_VISIBLE | SBS_VERT | SBS_RIGHTALIGN,
VTRect->left,VTRect->top,VTRect->right,VTRect->bottom-iVThumb ,
hCWnd,
NULL,
hInstance,
NULL);
爲了糾正差距,我會使用調用CreateWindow的調用如下
hWndVertScroll = CreateWindow(
"Scrollbar",
(LPSTR)NULL,
WS_CHILD | WS_VISIBLE | SBS_VERT | SBS_RIGHTALIGN,
VTRect->left,VTRect->top,VTRect->right - 100 ,VTRect->bottom-iVThumb ,
hCWnd,
NULL,
hInstance,
NULL);
但爲什麼VTRect->好吧,我不明白 - 100要求,但滾動向上靠在矩形的右側。請注意,我確實嘗試了VTRect-> right - iHThumb,但我仍然有一個缺口,儘管它較小。紅色矩形和滾動條以及兩者之間的間隙的
屏幕截圖: