与功能区页面交互时,插入符号或网格光标消失

时间:2018-11-14 05:09:05

标签: c++ wxwidgets

我有一个从wxMDIParentFrame派生的主框架和一个从wxMDIChildFrame.派生的相应子框架

主框架具有功能区栏,其内容如下:

auto clientWindow = GetClientWindow();
bSizer1->Add(m_ribbonBar, 0, wxEXPAND);
bSizer1->Add(clientWindow, 1, wxEXPAND);

子框架包含控件,例如一个具有wxRichTextCtrl,另一个具有wxGrid

例如,富文本控件如下所示添加到子框架:

m_OutputWindow = new wxRichTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 
        wxTE_AUTO_URL|wxTE_PROCESS_ENTER|wxTE_PROCESS_TAB|wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS );

auto bSizer1 = new wxBoxSizer(wxHORIZONTAL);
bSizer1->Add( m_OutputWindow, 7, wxEXPAND | wxALL, 5 );

SetSizer( bSizer1 );

Layout();

如图(对于富文本ctrl)所示,我遇到的问题是wxRichTextCtrl的插入符号或wxGrid上的网格光标消失了。

enter image description here

在以下情况下会发生这种情况:

1)用户更改功能区页面,

2)用户单击功能区面板上的控件(例如wxButton或wxComboBox)。对于RibbonBar的“本机”控件,不会发生此问题,

3)用户单击RibbonBar上的空白区域(完全没有控件)。

缺点是发生这种情况时,用户会丢失插入符号或网格光标位置的下落。

这3种情况中的任何一种发生时,子框架仍处于活动状态,我的假设是子框架上的控件(即wxRichTextCtrl或wxGrid)变为非活动状态。即使用户再次单击子框架(而不是直接在控件上),也不会显示插入符号或网格光标。用户必须单击另一个子框架,然后单击要定位的目标框架。 能够再次显示插入符号或网格光标。

发生上述情况时,如何使插入符号或网格光标保持可见?

我在Windows 10上使用wxWidgets 3.1.0。编译器为VS 2015。

0 个答案:

没有答案