如何實現「上一步」 「下一步」的對話方塊

2021-06-02 05:33:12 字數 2039 閱讀 2369

1.   類cpropertypage   是從cdiaglog中派生出來的,具有diaglog的基本性質,需要注意的是它的樣式必須是child。   

2.   類cpropertysheet   是乙個屬性表,也是乙個窗體,相當乙個容器,用來存放所有的cpropertypage。它不是   從cdialog   派生出來的,但是它可以象普通對話方塊類似的操作,   如domodal(),當用   domodal()顯示   後,它就包含了「取消」、「上一步」、「下一步」   等基本按鈕。 

下面給出乙個例項   

②   在自動生成   的dialog   資源中加入乙個按鈕idc_benginwiz   用來啟動嚮導。   

③   建立   cpropertypage。新建dialog   資源,命名為idd_step1,注意一定要將新建對話方塊的style屬性設定成child   和邊界屬性設定為thin,並且不要生成乙個新類。   

用classwizard   生成乙個新類,命名為cstep1,基類為cpropertypage,且將dialog   id   設定為剛生成的資源idd_step1。這樣就生成了乙個新屬性頁step1。如此操作就可以   同樣生成step2、step3   屬性頁。為了方便顯示,在每個對話方塊都放置了乙個控制項,用來表示當前是哪一步。 

④   建立   cpropertysheet。新建乙個類,命名為cwizard,基類為cpropertysheet。並將屬性頁和屬性表關聯起來。**為 

//將**放在按鈕idc_beginwiz的click事件中 

cwizard   mywizard(_t( "我的嚮導   "),this,1);   //生成乙個屬性表 

cstep1   mystep1;     //屬性頁1   

cstep2   mystep2;   //屬性頁2   

cstep3   mystep3;   //屬性頁3   

mywizard.addpage(&mystep1);   //新增屬性頁1   

mywizard.addpage(&mystep2);   //新增屬性頁2   

mywizard.addpage(&mystep3);   //新增屬性頁3 

mywizard.setwizardmode();       //將屬性表設定成嚮導樣式 

mywizard.setactivepage(&mystep1);   //設定第一頁為第一步 

mywizard.domodal();   //顯示屬性表 

⑤協調顯示。在每一頁為當前頁時,都會觸發onsetactive事件,故對每乙個屬性頁都要過載該函式,在cstep1類上選擇add   virtual   function   ...。因為顯示第一頁時,不存在「上一步」,故在cstep1的   onsetactive函式中需要新增如下**:   //**放在onsetactive函式中 

cpropertysheet*   pparent=(cpropertysheet*)getparent();   //   獲得屬性表的指標 

pparent-> setwizardbuttons(pswizb_next);   //   設定屬性表的顯示按鈕只為下一步 

setdlgitemtext(idc_text1, "這是嚮導的第一步 ");   

同樣在顯示中間頁時應該設定成即有「上一步」,也有「下一步」,**為:   cpropertysheet*   pparent=(cpropertysheet*)getparent();   

pparent-> setwizardbuttons(pswizb_next|pswizb_back);     

setdlgitemtext(idc_text2, "這是嚮導的第二步 ");   

最後在顯示最後一頁時只顯示「完成」和「上一步」,**為:   cpropertysheet*   pparent=(cpropertysheet*)getparent();   

pparent-> setwizardbuttons(pswizb_finish|pswizb_back);   

setdlgitemtext(idc_text3, "這是嚮導的第三步 ");   

Winform中模仿實現上一步 下一步的導航頁面

經常看到有人詢問在winform中怎麼實現類似安裝嚮導那樣的上一步 下一步的頁面,這個如果在asp.net中實現起來比較簡單,無非就是多個panel交替顯示罷了,可是在winform中控制起來就沒有那麼容易了,本人用tabcontrol做了乙個簡單實現,可以滿足一般的要求,具體實現過程如下 1.新建...

功能點 頁面資料彙總 上一步 下一步

適用場景 業務邏輯 第一步 將頁面資料儲存在快取中 第乙個頁面 this.choosedates表示 收集的頁面資料 this choosedates.男 this choosedates.age 18 localstorage.setitem student json stringify this...

PMON的下一步

現在pmon最大的問題就是不夠穩定,經常出些小問題。因為 比較亂,所以查詢起問題來越來越困難。公司的一些底層開發人員也一直有將龍芯的bootloader移植到uboot上來的打算,但時間太緊,一時又沒法完成這個任務,因此這個事情就一拖再拖了,到現在幾乎一年。看了整個的pmon 覺得其實真有必要好好整...