CWnd中的CScrollBar

时间:2015-12-07 12:56:41

标签: c++ mfc

我有一个类CForm,它有一个包含页面的COblist。每个页面都有一个带控件的列表(如单选按钮,复选框等)。 CForm还有一个CList,其中FormPanel是带有CTabCtrl的CWnd。每个页面都有一个FormPanel。 CForm还有一个带有CScrollBar的CWnd和一个方法SetPanel();

enter image description here

表单是从XML创建的:

<Form><Page><Radiobutton></Radiobutton></Page></Form>

将表单加载到CFormView中,其控件加载到面板上,面板放在面板(CWnd)中,带有滚动条。

我的主要问题是,在我用鼠标悬停或使用滚动条之前,控件是不可见的。

胡佛之前:

enter image description here

胡佛后:

enter image description here

所以控件在那里,我可以使用它们,但是我如何让它们从一开始就显示出来?

我尝试使用CScrollBar将CWnd更改为CFormView,但它无法正常工作。因为我的CTabCtrl需要CWnd而不是CFormView,我不想太多地改变结构(比如为面板添加属性页而不是CWnds)

那么,任何想法我怎么能让它发挥作用?

编辑:

void CForm::Show()
{
       m_pclScrollbar = new CFormularScrollbar(m_pwndParent, &m_clRect);
       m_pclScrollbar->SetPanel(m_pclPanel);
       m_pclScrollbar->ScrollBarInit();
       m_pclScrollbar->Show();
       m_pclPanel->Show();
       m_pclPanel->RedrawWindow();
}

编辑2:

    m_pclTabCtrl = new CTabCtrl();
    if(!m_pclTabCtrl->Create(TCS_TABS | WS_CHILD | WS_VISIBLE, rectTabCtrl, this, IDC_TAB_FORMULAR))
        throw new CBException("CFormPanel", "TabCtrlInit", "Could not create");

编辑3:

是否可以将Scrollbar与控制器放在同一个CWnd中?或滚动时移动滚动条?

0 个答案:

没有答案