2010-12-04 14 views
0

次の部分コードを検討してください。私の問題は、スクロールバーが矩形と揃っていないことです。私は長方形と2つの間に大きなギャップを持つスクロールバーを取得します。私は実験をして、 "オフセット"が何であるかを見いだし、それを入れてみましたが、スクロールバーが座標を敬うように見えない理由を理解したいと思います。 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を試しましたが、まだ小さなものですがギャップはあります。赤い長方形とスクロールバーと両者の間のギャップの

スクリーンショット:

alt text

答えて

0

VTRect->左、VTRect->トップ、VTRect->右 - 100、VTRect->ボトムiVThumb

これらの値を用いて()のcreateWindowに渡す引数は、x、yは、nWidthnHeight。幅と高さで、右と下ではありません。修正:

VTRect->左、VTRect->トップ、VTRect->右 - VTRect->左、VTRect->下 - VTRect->トップ

関連する問題