2
    case WM_VSCROLL: //in switch(message) in WinProc
            wmId = GetWindowLong((HWND) lParam, GWL_ID);
                        //only one scroll bar so don't check it
            switch(LOWORD(wParam))
            {
            case SB_THUMBPOSITION:
            case SB_THUMBTRACK:
                nScrollPos = HIWORD(wParam);
                break;
            default:
                break;
            }
            SetScrollPos (hDirectives, SB_CTL, nScrollPos, TRUE);
            break;
    //where 
    hDirectives = CreateWindow(TEXT("static"), NULL, 
WS_CHILD | WS_BORDER | WS_VISIBLE | SS_RIGHT | SS_SUNKEN | WS_VSCROLL, 
                20, 20, 300, 300, hWnd, 
(HMENU) ID_DIRECTIVE, ((LPCREATESTRUCT) lParam) ->hInstance, NULL);

ウィンドウが表示され、テキストを入力できますが、スクロール バーが反応しません。

4

1 に答える 1

1

ウィンドウにWS_VSCROLL/WS_HSCROLLスタイルがある場合、スクロールバー メッセージはその親ウィンドウではなく、そのウィンドウに送信されます。上記の例では、スクロール メッセージを処理するために静的コントロールをサブクラス化する必要があります。

于 2012-12-08T06:45:39.423 に答える