西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴(lài)的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)西西教程軟件使用 → MFC里面的PropertySheet使用

MFC里面的PropertySheet使用

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:本站原創(chuàng)時(shí)間:2010/4/6 21:18:44字體大。A-A+

作者:不詳點(diǎn)擊:371次評(píng)論:0次標(biāo)簽: MFC

  • 類(lèi)型:一體機(jī)驅(qū)動(dòng)大。41.2M語(yǔ)言:中文 評(píng)分:3.6
  • 標(biāo)簽:
立即下載

我是一個(gè)問(wèn)題少年,之前買(mǎi)過(guò)一本” Programming Windows”,上冊(cè)看過(guò)一些,大約知道Win32程序怎么寫(xiě),怎么工作的.來(lái)到新公司,我就準(zhǔn)備用Programming Windows里面那種Sample那種形式寫(xiě)程序.

老天就喜歡和我開(kāi)玩笑,普通的控件的消息響應(yīng)之類(lèi)還比較好處理(無(wú)非就是那個(gè)Switch…case…比較大而已),可以L(fǎng)eader偏偏決定用PropertySheet控件(一復(fù)雜控件).用Win32 API對(duì)于剛寫(xiě)Native代碼的我(到現(xiàn)在寫(xiě)了一個(gè)星期)簡(jiǎn)直就是一個(gè)不可能完成的任務(wù).讓寫(xiě)一個(gè)小程序,后臺(tái)那些東西我兩天就搞定,單單這個(gè)PropertySheet我兩天都沒(méi)搞定.

后來(lái)看到WTL里面直接可以創(chuàng)建PropertySheet,可是被告知,不允許使用WTL……無(wú)奈,只能轉(zhuǎn)投MFC,人生第一次使用MFC……

廢話(huà)少說(shuō),直接說(shuō)得到的PropertySheet相關(guān)的經(jīng)驗(yàn).

CPropertySheet和CPropertyPage是兩個(gè)基類(lèi),通常你不需要繼承這兩個(gè)類(lèi),不過(guò)需要個(gè)性化的需求,就需要繼承這兩個(gè)類(lèi)了.

首先說(shuō)明,Page類(lèi)其實(shí)就是一個(gè)Dialog,里面響應(yīng)了Notify消息,可以拿到SetActive,KillActive兩種比較重要的消息,里面可以做很多個(gè)性化的東西;

Sheet類(lèi)是一個(gè)封裝類(lèi),用來(lái)管理Page,例如可以拿到現(xiàn)在有多少個(gè)Page,獲取當(dāng)前Active的Page,設(shè)置第幾個(gè)Page為Active等等,更重要的是,他還可以動(dòng)態(tài)的Add , Remove Page.下面講怎么動(dòng)態(tài)添加刪除Page.

假設(shè)有CMyPropertySheet和CMyPropertyPage,分別繼承自上面那兩個(gè)類(lèi).

CMyPropertySheet里面添加一個(gè)成員:

std::vector<CMyPropertyPage*> _PropertyPageCache;

成員RefreshPages來(lái)實(shí)現(xiàn)動(dòng)態(tài)添加刪除Page,只是提供一個(gè)簡(jiǎn)單的Demo,剩下的自由發(fā)揮.


view sourceprint?01 void RefreshPages()

02

03 {

04

05 int pageCount= this->GetPageCount();

06

07 int insertCount=5;

08

09 for (int i=0;i<_PropertyPageCache.size();i++)

10

11 {

12

13 delete _PropertyPageCache[i];

14

15 }

16

17 _PropertyPageCache.clear();

18

19 for (int i=0;i<insertCount;i++)

20

21 {

22

23 CMyPropertyPage* page= new CMyPropertyPage;

24

25 page->Construct(IDD_MYDIALOG);

26

27 page->m_psp.pszTitle=L”Demo”;

28

29 page->m_psp.dwFlags|=PSP_USETITLE;

30

31 this->AddPage(page);

32

33 _PropertyPageCache.push_back(page);

34

35 }

36

37 for (int i = 0;i<pageCount;i++)

38

39 {

40

41 this->RemovePage(0);

42

43 }

44

45 }


 

Remove可以(最好)在后面完成,因?yàn)槿绻麆h完了的話(huà),CMyPropertySheet會(huì)直接跳出消息循環(huán)……

 

OK,現(xiàn)在你的PropertySheet就能完成動(dòng)態(tài)增刪的功能,剩下的就是看你想在什么地方動(dòng)態(tài)增刪Page了,哪里需要,就把this指針給誰(shuí)~~簡(jiǎn)單吧

 

PS:

曾經(jīng)試過(guò)如果不cache這些Page的話(huà),PropertySheet也創(chuàng)建了,但是Page的Title都不對(duì),而且點(diǎn)擊都會(huì)崩潰,因?yàn)槲乙矝](méi)研究過(guò)怎么具體使用Win32來(lái)完成這個(gè)功能(對(duì)底層不了解),不過(guò)根據(jù)這幾天寫(xiě)Native Code經(jīng)驗(yàn)判斷,是所謂的野指針,訪(fǎng)問(wèn)的內(nèi)存地址不對(duì).

因?yàn)槲抑笆且粋(gè)C#.NET程序員,所以對(duì)內(nèi)存訪(fǎng)問(wèn)(控制)有一點(diǎn)不了解,在這上面磕磕絆絆很多次,所以我直接去用自由存儲(chǔ),結(jié)果發(fā)現(xiàn)解決這個(gè)問(wèn)題……歪打正著吧……

    兄弟打印機(jī)驅(qū)動(dòng)
    (52)兄弟打印機(jī)驅(qū)動(dòng)
    兄弟打印機(jī)是國(guó)際知名的打印機(jī)品牌,國(guó)內(nèi)很多企業(yè)辦公都會(huì)選擇兄弟旗下的辦公打印設(shè)備。雖然大家在購(gòu)買(mǎi)打印機(jī)的時(shí)候都有隨機(jī)附贈(zèng)的驅(qū)動(dòng)光盤(pán),不過(guò)很多人在使用了一段時(shí)間后就會(huì)把光盤(pán)弄丟了,這里西西給大家提供了一些兄弟打印機(jī)驅(qū)動(dòng)下載,這里包含了大家常見(jiàn)的兄弟熱門(mén)打印機(jī)型號(hào),大家可以來(lái)西西找到自己需要的打印機(jī)驅(qū)動(dòng)。...更多>>
    視頻編輯軟件
    (145)視頻編輯軟件
    視頻編輯軟件其實(shí)是對(duì)圖片視頻音頻等素材進(jìn)行重組編碼工作的多媒體軟件。重組編碼是將圖片視頻音頻等素材進(jìn)行線(xiàn)性編輯后,根據(jù)視頻編碼規(guī)范進(jìn)行重新編碼,轉(zhuǎn)換成新的格式,比如格式,這樣圖片視頻音頻無(wú)法被重新提取出來(lái),因?yàn)橐呀?jīng)轉(zhuǎn)化為新的視頻格式,發(fā)生質(zhì)的變化。視頻編輯軟件的另一個(gè)重要技術(shù)特征在于,除了具有圖片轉(zhuǎn)視頻的技術(shù),優(yōu)秀專(zhuān)業(yè)的視頻編輯軟件,還需具有為原始圖片添加各種多媒體素材,實(shí)現(xiàn)制作出的視頻圖文并茂的...更多>>
    • 視頻合并超快(Boilsoft Video Join

      04-12 / 15.1M

      推薦理由:視頻合并超快(Boilsoft Video Joiner)是一款將視頻快速合并的工具。將瑣碎影片按順序作結(jié)合整理,這個(gè)軟件可
    • 視頻制作字幕軟件(Subtitle Worksh

      11-30 / 1.5M

      推薦理由:最完備、最有效、最方便的電影字幕編輯工具,支持所有的字幕文件格式,可以執(zhí)行字幕的建立、編輯、轉(zhuǎn)換,程
    • 視頻旋轉(zhuǎn)器(X2X Free Video Flip a

      05-25 / 26.7M

      推薦理由: 免費(fèi)的視頻旋轉(zhuǎn)工具,可以翻轉(zhuǎn)和旋轉(zhuǎn)視頻。7個(gè)預(yù)設(shè)的設(shè)置,可以將視頻順時(shí)針旋轉(zhuǎn)90、180度 同時(shí),本
    • 小日本視頻編輯(TMPGEnc Video Mas

      12-05 / 53.0M

      推薦理由:屢獲殊榮的TMPGEnc 4.0 XPress后繼者TMPGEnc Video Mastering Works 5 最新版本重裝上陣!多種輸入和輸出格
    • 視頻轉(zhuǎn)為GIF(Free Video to GIF Co

      04-23 / 8.2M

      推薦理由:提取影視文件片段轉(zhuǎn)換為GIF動(dòng)態(tài)畫(huà)面的工具 用來(lái)制作論壇貼吧上搞笑GIF的軟件 導(dǎo)入需要制作GIF圖片的視頻,
    • 視頻去水印(Remove Logo Now)1.2 綠

      09-06 / 9.0M

      推薦理由:支持AVI、MOV、M1V、MP2、SVCD、FLV、MP4、M2V、DVD、SWF、3GP、MKV、WMV和RM10,轉(zhuǎn)換前可以自定義輸出格式

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱(chēng):
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)