gpt4 book ai didi

winapi - WS_VSCROLL,CreateWindow样式有效,SetWindowLong不起作用

转载 作者:行者123 更新时间:2023-12-04 22:53:55 24 4
gpt4 key购买 nike

当我做

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样式(本质上控制自动换行)就是其中之一;这由Edit Control Styles上的MSDN部分声明(某种程度上是间接的)。您可以使用SetWindowLong()设置这些位,但是控件将忽略它们或行为不正常。

干净地做到这一点的唯一方法是使用所需的样式重新创建编辑控件。实际上,这是记事本在切换“自动换行”设置时所做的事情。

关于winapi - WS_VSCROLL,CreateWindow样式有效,SetWindowLong不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/285587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com