如何在编辑控件上自动隐藏滚动条

Ste*_*adi 2 c++ winapi textbox

我目前正在尝试在我的Win32应用程序中创建一个EDIT控件(http://msdn.microsoft.com/en-us/library/windows/desktop/bb775458(v=vs.85).aspx)但遗憾的是,我不能让Vertical Scroll Bar在不使用时消失.

我现在正在使用这种风格:

WS_CHILD | ES_MULTILINE | ES_WANTRETURN | WS_VISIBLE | WS_VSCROLL | ES_AUTOVSCROLL
Run Code Online (Sandbox Code Playgroud)

这将显示滚动条,但即使不需要它也将永久可见.理想情况下,我希望这个栏在不需要时隐藏(即 - 当文本适合控制时)

是否存在我缺少的样式或者是否需要使用Scrolls创建单独的控件然后将EDIT嵌入其中?

先谢谢你,马特

jam*_*lin 8

这很烦人,但没有办法根据需要自动创建编辑控件或隐藏其滚动条.你必须自己做.你可以继承的编辑控制和呼叫ShowScrollBar响应影响大小或文本(不同的窗口消息和通知在必要时WM_SETTEXT,WM_SETFONT,WM_SIZE,和EN_CHANGE是我能想到的明显的).

  • 捕获[`EN_UPDATE`](http://msdn.microsoft.com/en-us/library/windows/desktop/bb761687.aspx)通知而不是单独的窗口消息会更容易. (4认同)

Rem*_*eau 5

标准EDIT控件不支持自动显示/隐藏滚动条。但是,RICHEDIT如果您不指定ES_DISABLENOSCROLL样式,则标准控件可以。