WS_VSCROLL, CreateWINDOW 스타일 작업, SetWindowLong은 그렇지 않습니다
문제
내가 할 때
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 () 함수로 수행 할 수 있습니다. 창의 스크롤 막대를 활성화/비활성화하려면 기능이 흥미로울 수 있습니다. 친애하는.
제휴하지 않습니다 StackOverflow