문제

내가 할 때

wnd = CreateWindow("EDIT", 0,
    WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | ES_MULTILINE | 
    ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN,
    x, y, w, h,
    parentWnd,
    NULL, NULL, NULL);

모든 것이 괜찮지 만 WS_VSCROLL과 WS_HSCROLL을 제거하면 아래를 수행하면 잘못된 창이 있습니다. 왜요? ws_vscroll과 ws_hscroll이 모두 누락 된 경우 잘못된 창을 얻을 수 없을뿐만 아니라 사용할 수 없습니다.

style = WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | ES_MULTILINE |
    ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN;
SetWindowLong(wnd, GWL_STYLE, style);
도움이 되었습니까?

해결책

윈도우 생성 후에는 일부 제어 스타일을 변경할 수 없습니다. es_autohscroll 스타일 (본질적으로 단어 랩핑을 제어)은 그중 하나입니다. 이것은 MSDN 섹션에서 (다소 간접적으로) 명시됩니다. 제어 스타일을 편집합니다. setwindowlong ()을 사용하여 비트를 설정할 수 있지만 컨트롤은 무시하거나 불규칙하게 행동합니다.

이를 깨끗하게 수행하는 유일한 방법은 필요한 스타일을 사용하여 편집 컨트롤을 재현하는 것입니다. 이것은 실제로 "Word Wrap"설정을 전환 할 때 메모장이하는 일입니다.

다른 팁

showscrollbar () 함수로 수행 할 수 있습니다. 창의 스크롤 막대를 활성화/비활성화하려면 기능이 흥미로울 수 있습니다. 친애하는.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top