Wxwidgets 更新 wxListBox 以滚动到其底部

问题描述 投票:0回答:1

我正在尝试使用以下方法使列表框在底部滚动:

message_list_box->Append(*message); 
message_list_box->SetSelection(message_list_box->GetCount()-1);     
message_list_box->Refresh();

SetSelection
导致它冻结,只有在鼠标点击它后才起作用,有没有办法更新它? (向下滚动)

c++ wxwidgets
1个回答
0
投票

不,

SetSelection()
不会导致它冻结,这就是:

此代码在 int Window::main_frame::main_loop() { while (!window->IsBeingDeleted()) { } }

内调用

在 GUI 应用程序中不能有任何这样的循环,并且期望它不会冻结,因为在这样的循环中它无法处理任何事件——而这正是导致“冻结”的原因。要修复它,您必须重构代码以删除此循环。

当寻求帮助时,你应该真正提供一个简短、独立、正确(可编译)的示例,而不是说程序做什么并不重要(因为,100 次中有 99 次,它非常重要) ).

© www.soinside.com 2019 - 2024. All rights reserved.