Полоса прокрутки статического управления не работает Win32

    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);

Появится окно, и я могу вставить текст, но полоса прокрутки не отвечает.

1

Решение

Когда окно имеет WS_VSCROLL / WS_HSCROLL стилей, сообщения полосы прокрутки будут отправлены на тот окно, а не его родитель. В приведенном выше примере вам нужно будет разделить статический элемент управления для обработки сообщений прокрутки.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]