0

我的申请中有以下子女与父母的关系:

在此处输入图像描述

问题是 wxScrolledWindow 中没有可见的(或工作的)滚动条。

代码:

wxCollapsiblePane* collpane = new wxCollapsiblePane(this, ID_COLLPANE, "Tiles\t\t\t\t", wxDefaultPosition, wxDefaultSize, wxCP_NO_TLW_RESIZE);
wxSizer* sz = new wxBoxSizer(wxVERTICAL);
sz->Add(collpane,0,wxALIGN_RIGHT,10);
SetSizer(sz);
wxWindow* cPane = collpane->GetPane();
wxSizer* panesz = new wxBoxSizer(wxVERTICAL);
wxBitmap pic("test.bmp",wxBITMAP_TYPE_BMP);
wxScrolledWindow* scr = new wxScrolledWindow(cPane,ID_PANEL,wxDefaultPosition, wxSize(150,300));
scr->SetScrollbars(2,2,10,10);
wxClientDC dc(this);
scr->DoPrepareDC(dc);
panesz->Add( new wxBitmapButton(scr,-1,pic, wxDefaultPosition, wxSize(50,50) ), 1,  wxALIGN_CENTER, 0 );
/* more button adding here */
cPane->SetSizer(panesz);
panesz->SetSizeHints(cPane);

如何让滚动条显示和滚动按钮?

4

3 回答 3

4

要拥有滚动条,您需要wxScrolledWindow使用方法指示其完整的逻辑(而不是可能更小的物理)大小SetVirtualSize()。这可以通过直接调用它或者通过将一个sizer与滚动窗口相关联,将元素添加到这个sizer并调用来完成FitInside()

于 2012-09-20T09:43:30.157 回答
3

在默认状态下,要显示滚动条,窗口的虚拟大小必须大于窗口的实际大小。

scr->SetVirtualSize(wxSize(2000,2000));

但是,在 3.1 版中,这还不足以让滚动条出现。还必须设置滚动速率。(这对我来说感觉像是一个错误,因为它似乎应该有一个有效的默认设置。)

scr->SetScrollRate(1, 1);
于 2018-05-02T14:32:36.983 回答
0

你应该修改

wxWindow* cPane = collpane->GetPane();
wxSizer* panesz = new wxBoxSizer(wxVERTICAL);
wxBitmap pic("test.bmp",wxBITMAP_TYPE_B ...

你应该放个jpg。修改后,它肯定会工作;)相信我。

于 2012-09-19T20:04:37.827 回答