c# - 自动滚动控件(WinAPI)?

标签 c# c++ c winapi

在 C# (.Net) 中,您可以创建面板并将自动滚动设置为 true。然后您可以向其中添加控件,包括超出其大小的控件,然后它就会滚动。

我想知道在 c++(而非 .net)中使用真正的 WinAPI 时如何才能达到相同的结果。

我必须跟踪内部控件并在我滚动时移动它们,还是有像 C# 中那样更简单的方法。

谢谢

最佳答案

对于编辑控件(文本框),您可以在通过 CreateWindow 或 CreateWindowEx 创建时提供 ES_AUTOVSCROLL。要在窗口中为多个控件添加滚动条,我相信您必须手动完成。编写一个函数来求和所有子控件的垂直高度+它们之间的间距,如果它小于窗口,则添加一个垂直滚动条,如果它更大,则删除垂直滚动条(如果存在)。请务必在添加/删除子控件和调整窗口大小时调用它。

关于c# - 自动滚动控件(WinAPI)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2949892/

相关文章:

c - c 中的 double 比较失败

c# - 如何为 Portable HttpClient 实现进度报告

c# - 参数计数与 Invoke 不匹配?

c# - 重载方法是否可以转换其参数然后调用其原始方法?

c++ - 我的 MergeSort 有什么问题?

c - 引用 C 指针作为数组索引两次

c# - 如何使用 .NET 中的 OleDb 命名空间连接到 Access 数据库?

c++ - 无法推断模板参数

C++数组意外错误

c - 将项目插入树时程序崩溃