日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CPropertySheet 与CPropertyPage 的基本使用

發(fā)布時間:2023/12/20 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CPropertySheet 与CPropertyPage 的基本使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

https://www.cnblogs.com/sylar-liang/p/4173015.html
https://blog.csdn.net/qq_18297675/article/details/51229028 怎么創(chuàng)建
CPropertyPage 是一個從CDialog派生而來的一個類,基本功能與對話框類一樣,

CPropertySheet不是一個CDialog的派生類,他是派生自CWnd的,其實它就是一個CDialog上加了一個CTabCtrl的組合類

現(xiàn)在來介紹它的使用。

(1)首先按一般的方法來建立一個基于對話框的MFC程序。這里我叫CProDlg

(2)現(xiàn)在新那兩個對話框資源,把它們的屬性設(shè)為CHILD和THIN,最好CAPTION也有個,分別為它們綁定一個類,這個類要選 為CPropertyPage (當然是CDialog也行,不過這里我介紹這個)

分別命名為CPage1,CPage2

(3)使用向?qū)陆ㄒ粋€MFC類,名字為CMySheet類,父類當然選CPropertySheet。

(4)現(xiàn)在在CProDlg中添加三個指針變量(變量也行是,不過在生成對象時不用new)

分別為:

CMySheet* m_sheet;
CPage1* page1;
CPage2* page2;

在CProDlg的構(gòu)造函數(shù)中加入

m_sheet = new CMySheet(_T(“SHEET”));
page1 = new CPage1;
page2 = new CPage2;

然后初始化

BOOL CProDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// 設(shè)置此對話框的圖標。當應(yīng)用程序主窗口不是對話框時,框架將自動
// 執(zhí)行此操作
SetIcon(m_hIcon, TRUE); // 設(shè)置大圖標
SetIcon(m_hIcon, FALSE); // 設(shè)置小圖標

// TODO: 在此添加額外的初始化代碼
//property sheet
m_sheet->AddPage(page1);
m_sheet->AddPage(page2);
m_sheet->Create(this, WS_CHILD | WS_VISIBLE , 0);
m_sheet->ModifyStyle(0, WS_TABSTOP | TCS_BOTTOM);
m_sheet->ModifyStyleEx(0, WS_EX_CONTROLPARENT);
CTabCtrl* pTab = m_sheet->GetTabControl();
TCITEM tcitem;
for( int i = 0; i < 2; i++)
{
pTab->SetItem(i, &tcitem);
}

CRect rcSheet;
GetClientRect(&rcSheet);
TRACE(_T(“width: %d, height: %d\n”), rcSheet.Width(), rcSheet.Height());
m_sheet->SetWindowPos(NULL, rcSheet.left, rcSheet.top, rcSheet.Width(), rcSheet.Height(),
SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE);
m_sheet->SetActivePage(0);

現(xiàn)在就可以了,是不是達到了跟原來使用CDialog+CTabCtrl同樣的效果呢。

正所謂一題多解嘛

這里,提示下,現(xiàn)在CPropertySheet的大小還不合適,

思路如下:

為CMySheet重載OnInitDialog()

在里面使用MoveWindow來達到控制PropertySheet大小的目的

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的CPropertySheet 与CPropertyPage 的基本使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。