当前位置:网站首页>Cbcgptabwnd control used by BCG (equivalent to MFC TabControl)

Cbcgptabwnd control used by BCG (equivalent to MFC TabControl)

2022-07-04 19:42:00 Spring buds and summer lotus_ seven hundred and twenty-eight mi

1、 Create a new sub dialog box and modify the properties , Create a new class at the same time NyPage1

 2、 In the dialog box of new project default class , Add one pic Control and modify hidden properties

 

3、 Modify the contents of the default class :

(1) Header file

Add destructor :

~CBCGTabWndSampleDlg()
    {
        if (_NyPage1 != nullptr)
        {
            delete _NyPage1;
            _NyPage1 = nullptr;
        }
        if (_NyPage2 != nullptr)
        {
            delete _NyPage2;
            _NyPage2 = nullptr;
        }
    }

Define members :

CBCGPTabWnd m_wndTab;

    NyPage1 *_NyPage1;
    NyPage1 *_NyPage2;

    afx_msg LRESULT OnMoveTab(WPARAM wp, LPARAM lp);
    afx_msg LRESULT OnChangeActiveTab(WPARAM wp, LPARAM lp);
    afx_msg LRESULT OnRenameTab(WPARAM wp, LPARAM lp);
    afx_msg LRESULT OnChangeTabSelection(WPARAM wp, LPARAM lp);

(2) In the implementation file

Message response

N_REGISTERED_MESSAGE(BCGM_ON_MOVE_TAB, CBCGTabWndSampleDlg::OnMoveTab)
    // Switch tab Responding to events
    ON_REGISTERED_MESSAGE(BCGM_CHANGE_ACTIVE_TAB, CBCGTabWndSampleDlg::OnChangeActiveTab)
    ON_REGISTERED_MESSAGE(BCGM_ON_RENAME_TAB, CBCGTabWndSampleDlg::OnRenameTab)
    ON_REGISTERED_MESSAGE(BCGM_CHANGE_TAB_SELECTION, CBCGTabWndSampleDlg::OnChangeTabSelection)

BOOL CBCGTabWndSampleDlg::OnInitDialog()
{
    CBCGPDialog::OnInitDialog();

    CRect rectTab;
    GetDlgItem(IDC_TAB)->GetWindowRect(&rectTab);
    ScreenToClient(&rectTab);
    m_wndTab.Create(CBCGPTabWnd::STYLE_3D, rectTab, this, 1, CBCGPTabWnd::LOCATION_TOP);

    {
        _NyPage1 = new NyPage1();
        _NyPage1->Create(NyPage1::IDD, &m_wndTab);
        m_wndTab.AddTab(_NyPage1, _T(" first page "), 0);

        _NyPage2 = new NyPage1();
        _NyPage2->Create(NyPage1::IDD, &m_wndTab);
        m_wndTab.AddTab(_NyPage2, _T(" The second page "), 1);
    }

    m_wndTab.SetActiveTab(0);

    m_wndTab.RecalcLayout();
    m_wndTab.RedrawWindow();


    return TRUE;  // return TRUE  unless you set the focus to a control
}

LRESULT CBCGTabWndSampleDlg::OnMoveTab(WPARAM wp, LPARAM lp)
{
    return 1;
}

LRESULT CBCGTabWndSampleDlg::OnChangeActiveTab(WPARAM wp, LPARAM lp)
{
    return 1;
}

LRESULT CBCGTabWndSampleDlg::OnRenameTab(WPARAM wp, LPARAM lp)
{
    return 1;
}
LRESULT CBCGTabWndSampleDlg::OnChangeTabSelection(WPARAM wp, LPARAM lp)
{
    return 1;
}

thus , You can see its simple effect , No beautification :

 

原网站

版权声明
本文为[Spring buds and summer lotus_ seven hundred and twenty-eight mi]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/185/202207041806393274.html