当前位置:  开发笔记 > 编程语言 > 正文

WS_VSCROLL,CreateWindow样式有效,SetWindowLong不行

如何解决《WS_VSCROLL,CreateWindow样式有效,SetWindowLong不行》经验,为你挑选了1个好方法。

当我做

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()设置位,但控件将忽略它们或行为不正常.

干净利落的唯一方法是使用所需的样式重新创建编辑控件.这实际上就是当你切换"自动换行"设置时记事本的作用.



1> efotinis..:

创建窗口后无法更改某些控件样式.ES_AUTOHSCROLL样式(基本上控制自动换行)就是其中之一; 这是由编辑控件样式的MSDN部分(有些间接地)说明的.您可以使用SetWindowLong()设置位,但控件将忽略它们或行为不正常.

干净利落的唯一方法是使用所需的样式重新创建编辑控件.这实际上就是当你切换"自动换行"设置时记事本的作用.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有