当我做
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);
efotinis.. 8
创建窗口后无法更改某些控件样式.ES_AUTOHSCROLL样式(基本上控制自动换行)就是其中之一; 这是由编辑控件样式的MSDN部分(有些间接地)说明的.您可以使用SetWindowLong()设置位,但控件将忽略它们或行为不正常.
干净利落的唯一方法是使用所需的样式重新创建编辑控件.这实际上就是当你切换"自动换行"设置时记事本的作用.
创建窗口后无法更改某些控件样式.ES_AUTOHSCROLL样式(基本上控制自动换行)就是其中之一; 这是由编辑控件样式的MSDN部分(有些间接地)说明的.您可以使用SetWindowLong()设置位,但控件将忽略它们或行为不正常.
干净利落的唯一方法是使用所需的样式重新创建编辑控件.这实际上就是当你切换"自动换行"设置时记事本的作用.