MFC 标签页
MFC?多個對話框標簽頁選擇效果
1.新建一個MFC工程
取名PageSheet,選擇Dialog based,然后Finish。
?
2.在對話框資源中插入兩個對話框IDD_DIALOG1、IDD_DIALOG2,作為兩個子頁。
?
3.為這兩個對話框增加兩個類,分別為CPage1和CPage2,其基類選擇CPropertyPage。
?
4.增加一個屬性頁類CMySheet, 其基類選擇CPropertySheet。
?
5.在類CMySheet中增加兩個成員變量m_page1,類型為CPage1,m_page2,類型為CPage2。
如:
public:
?CPage1 m_page1;
?CPage2 m_page2;
?
6.在類CMySheet的構造函數中添加如下兩句,增加兩個頁。
如:
CMySheet::CMySheet()
{
?AddPage(&m_liveRecord);
?AddPage(&m_livePlay);
}
ps:CMySheet類原先的兩個帶參構造函數,可以刪除,改成以上所示無參構造函數。
?
7.在類CPageSheetApp的初始化函數InitInstance()中,將原來聲明的對象去掉。改為屬性頁類對象聲明。
如:
//CPageSheetDlg dlg;
??CMySheet dlg;
?
8.添加頭文件。
①“PageSheet.cpp”文件中添加頭文件“MySheet.h”
②“MySheet.h”中添加頭文件“CPage1.h”和“CPage2.h”
?
9.為屬性頁類添加初始化函數。
如:
BOOL CMySheet::OnInitDialog()
{
?//屬性頁對話框初始化
?BOOL bResult = CPropertySheet::OnInitDialog();
?//設置窗口標題
?SetWindowText("Page Sheet");
?//去除多余的控件(確定、取消、應用、幫助)
?CWnd *pWnd = GetDlgItem(IDOK);
?pWnd->ShowWindow(SW_HIDE);
?pWnd = GetDlgItem(ID_APPLY_NOW);
?pWnd->ShowWindow(SW_HIDE);
?pWnd = GetDlgItem(IDHELP);
?pWnd->ShowWindow(SW_HIDE);
?pWnd = GetDlgItem(IDCANCEL);
?pWnd->ShowWindow(SW_HIDE);
?RECT??rc;?
?//調整屬性頁對話框的大小?
?GetWindowRect??(&rc);?
?MoveWindow(rc.left,rc.top,rc.right-rc.left,rc.bottom-rc.top-30);??//調整窗口?
?return bResult;
}
?
10.可以將多余的對話框、文件刪除。
對話框:程序初始對話框IDD_PAGESHEET_DIALOG
文件:CPageSheetDlg.h ,CPageSheetDlg.cpp
轉載于:https://blog.51cto.com/jwj123/1584945
總結
- 上一篇: Javascript基础系列之(六)循环
- 下一篇: 上传文件返回数据提示下载