青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

KISS(Keep It Simple, Standard)

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  10 Posts :: 0 Stories :: 24 Comments :: 0 Trackbacks

常用鏈接

留言簿(10)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 

  一、創建DialogBar的派生類

首先,創建對話框資源:在對話框資源編輯器內生成一個Dialog資源,并將其風格(Style)屬性必須設置為Child,不能設置為OverlappedPopup,否則運行肯定出錯;至于邊界屬性則隨用戶自己喜歡,一般都是選擇None。其余屬性也隨用戶選擇,一般沒有特殊要求還是選擇默認的好。

其次,創建基于CDialog的派生類:打開ClassWizard,為以上創建的資源添加一個以CDialog為基類的派生類(因為ClassWizard沒有將CDialogBar列在基類目錄清單中,所以用戶只能先以CDialog類派生)。

再次,修改派生類以CDialogBar為基類:通常需要手工修改幾處代碼,在本例中派生類以CDataStatus命名。(注:以后講解中凡是手工改動都是以灰背景顯示)

1 在頭文件中修改繼承關系

class CDataStatus : public CDialog 改為class CDataStatus : public CDialogBar

2 在代碼文件中修該構造函數繼承關系

CDataStatus::CDataStatus(CWnd* pParent /*=NULL*/)

: CDialog(CDataStatus::IDD, pParent)

{

    //{{AFX_DATA_INIT(CDataStatus)

           // NOTE: the ClassWizard will add member initialization here

    //}}AFX_DATA_INIT

}

改為

CDataStatus::CDataStatus(CWnd* pParent /*=NULL*/)

{

    //{{AFX_DATA_INIT(CDataStatus)

           // NOTE: the ClassWizard will add member initialization here

    //}}AFX_DATA_INIT

}

3 DDX綁定函數中的繼承關系去掉

即將void CDataStatus::DoDataExchange(CDataExchange* pDX)

{

    CDialog::DoDataExchange(pDX);

    //{{AFX_DATA_MAP(CCurrentCheckDlg)

    ………..

    //}}AFX_DATA_MAP

}

改為

void CDataStatus::DoDataExchange(CDataExchange* pDX)

{

    //{{AFX_DATA_MAP(CCurrentCheckDlg)

    ………….

    //}}AFX_DATA_MAP

}

4 重新初始化函數(這個相當重要,如果不這么做的話,DDX函數形同虛設,當然用戶的工具條如果沒有用到DDX的話當然可以不加這段代碼):

首先在ClassWizardMessageMap中對消息該CDataStatus類的WM_INITDIALOG消息添加處理函數默認名為OnInitDialog

其次手工修改代碼如下:

1             添加消息映射函數。由于對話框形式的初始化函數消息并未加載到消息映射內,為此我們需要手工添加,要不然代碼無法攔截該工具條的初始化消息,形式如下:

BEGIN_MESSAGE_MAP(CDataStatus, CDialogBar)

       //{{AFX_MSG_MAP(CDataStatus)

       .......

       //}}AFX_MSG_MAP

END_MESSAGE_MAP()

改為:

BEGIN_MESSAGE_MAP(CDataStatus, CDialogBar)

       //{{AFX_MSG_MAP(CDataStatus)

       .......

       ON_MESSAGE(WM_INITDIALOG,OnInitDialog)

       //}}AFX_MSG_MAP

END_MESSAGE_MAP()

2             修改OnInitDialog函數,此函數并未傳遞參數,但是在這里我們需要讓它傳遞參數,代碼如下修改(當然頭文件中,對聲明也要做修改,在這里就不作贅述了)

BOOL CDataStatus::OnInitDialog()

{

       CDialogBar::OnInitDialog();

   

       // TODO: Add extra initialization here

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

              // EXCEPTION: OCX Property Pages should return FALSE

}

改為:

BOOL CDataStatus::OnInitDialog(UINT wParam,LONG lParam)

{

       //CDialogBar::OnInitDialog();

        

       // TODO: Add extra initialization here

       BOOL bRet = HandleInitDialog(wParam,lParam);

       if (!UpdateData(FALSE))

       {

              TRACE("InitCDataStatus Failed");

       }

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

                     // EXCEPTION: OCX Property Pages should return FALSE

}

 

二、在框架類中實現該派生類的對象化

首先,在框架類的頭文件內聲明實例對象,本例實例化:CDataStatus    m_wndDataStatus;當然頭文件中不可避免要包含新派生類的頭文件。

其次,在框架類的OnCreate函數內創建對象并將對象綁定對話框資源。形式與創建ToolBar原理一樣,本例實例如下:

if (!m_wndDataStatus.Create(this,IDD_DATASTATUS,WS_VISIBLE|WS_CHILD

|CBRS_SIZE_DYNAMIC|CBRS_BOTTOM,IDD_DATASTATUS))

      {

             TRACE0("Failed to create CDataStatus bar!");

             return -1;

      }

再次,最為關鍵的一點就是重寫框架類的OnCmdMsg虛函數。如果不重寫該函數,那么不光DDX功能無法實現,連最基本的OnCommand事件都無法實現。而且還得手工添加代碼,形式如下:

BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra,

AFX_CMDHANDLERINFO* pHandlerInfo)

{

      // TODO: Add your specialized code here and/or call the base class

      return CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);

}

改為:

BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)

{

      // TODO: Add your specialized code here and/or call the base class

      if (m_wndDataStatus.OnCmdMsg(nID,nCode,pExtra,pHandlerInfo))

             return    TRUE;

      return CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);

}

三、CReBar上添加該實例化對象

其實這一步倒是相當簡單,只是自己以前沒用過這個類,所以在這里也順便用了一下。

首先,在框架類的頭文件中用CRebar聲明一個對象,如CReBar   m_wndReBar;

其次,在框架類的代碼文件中的OnCreat函數體內,生成對象,代碼如下:

if (!m_wndReBar.Create(this,RBS_BANDBORDERS,WS_CHILD |

WS_VISIBLE| CBRS_BOTTOM|WS_CLIPSIBLINGS|WS_CLIPCHILDREN))

      {

             TRACE0("Failed to create Rebar \n");

             return -1;

      }

再次,就是將所要添加的toolbar以及新生成的CDataStatus對象m_wndDataStatus加進Rebar的對象m_wndReBar中,代碼如下:

m_wndReBar.AddBar(&m_wndDataStatus,NULL,NULL,

RBBS_GRIPPERALWAYS|RBBS_FIXEDBMP);

posted on 2007-08-24 17:17 QUIRE-0216 閱讀(723) 評論(0)  編輯 收藏 引用 所屬分類: MFC
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            91久久精品久久国产性色也91| 欧美成人激情在线| 99这里只有精品| 亚洲国产精品激情在线观看| 国产日产欧产精品推荐色 | 午夜精彩国产免费不卡不顿大片| 亚洲黄色影片| 欧美国产日韩精品| 蜜臀va亚洲va欧美va天堂| 久久精品国产清高在天天线| 午夜精品久久久久| 亚洲在线不卡| 亚洲一区图片| 亚洲一区二区三区视频| 这里只有精品丝袜| 一区二区三区导航| 一本一道久久综合狠狠老精东影业| 91久久久在线| 亚洲黄网站在线观看| 在线看片成人| 影音先锋国产精品| 一色屋精品视频免费看| 尤物九九久久国产精品的分类| 韩国精品一区二区三区| 国模精品一区二区三区| 国产在线精品一区二区中文| 国产一区二区三区直播精品电影 | 性色一区二区三区| 午夜日韩视频| 欧美中日韩免费视频| 欧美伊人久久大香线蕉综合69| 午夜亚洲性色福利视频| 欧美一区二区视频97| 久久精品人人| 噜噜噜久久亚洲精品国产品小说| 久久裸体艺术| 欧美成人dvd在线视频| 欧美国产欧美综合| 欧美日韩高清区| 国产精品国产自产拍高清av王其| 国产精品日本精品| 国产在线成人| 91久久久一线二线三线品牌| 亚洲美女网站| 亚洲欧美精品在线观看| 久久国产精品一区二区三区| 久久这里有精品视频| 免费亚洲电影| 亚洲精品孕妇| 亚洲免费中文| 久久婷婷综合激情| 欧美日本不卡高清| 国产欧美精品xxxx另类| 永久免费毛片在线播放不卡| 亚洲精品一区二区在线| 亚洲欧美另类中文字幕| 久久久精品国产免大香伊| 欧美刺激性大交免费视频| 亚洲人在线视频| 亚洲制服av| 久久久蜜桃精品| 欧美日韩1区| 国产一区二区三区的电影| 亚洲国产一区二区三区高清| 亚洲天堂av电影| 久久午夜色播影院免费高清| 最新亚洲视频| 欧美一区二区三区播放老司机 | 免费国产自线拍一欧美视频| 欧美日韩亚洲一区二区| 国产一区二区三区网站| 99视频+国产日韩欧美| 久久国产精品免费一区| 亚洲国产乱码最新视频| 亚洲女女女同性video| 媚黑女一区二区| 欧美日韩综合视频| 在线精品福利| 午夜精品福利视频| 欧美激情亚洲另类| 午夜免费电影一区在线观看| 欧美成人精品不卡视频在线观看| 国产九九视频一区二区三区| 亚洲人成网站在线播| 欧美主播一区二区三区| 亚洲人线精品午夜| 久久精品人人做人人爽电影蜜月| 欧美性理论片在线观看片免费| 在线精品视频免费观看| 亚洲欧美日韩一区二区三区在线观看| 欧美88av| 久久er99精品| 国产精品免费aⅴ片在线观看| 亚洲精品国产品国语在线app| 久久精品在线| 亚洲一区二区三区涩| 欧美国产日韩在线| 激情av一区| 欧美伊人久久久久久午夜久久久久 | 日韩一二三区视频| 久久综合色88| 欧美在线播放| 国产精品久久久爽爽爽麻豆色哟哟 | 久久久av毛片精品| 一区二区欧美精品| 欧美美女bb生活片| 亚洲国产日韩一级| 久久亚洲欧美| 欧美一级午夜免费电影| 国产精品久久久久久久久久ktv| 99精品欧美一区二区三区| 欧美成年视频| 快播亚洲色图| 在线看一区二区| 久久精品日产第一区二区三区| 亚洲视频在线免费观看| 欧美手机在线| 亚洲天堂网站在线观看视频| 亚洲国产高清在线| 女人香蕉久久**毛片精品| 亚洲成人在线视频网站| 久久综合一区二区| 久久国产主播| 狠狠狠色丁香婷婷综合久久五月| 久久精品国产亚洲一区二区| 亚洲午夜免费视频| 国产精品毛片在线| 香蕉久久夜色精品国产使用方法| 一区二区三区日韩精品视频| 欧美日韩一二三区| 亚洲影音先锋| 亚洲一区欧美二区| 国产精品日韩欧美综合| 亚洲制服少妇| 亚洲午夜高清视频| 国产精品青草综合久久久久99| 亚洲欧美日韩精品久久奇米色影视 | 久久久噜噜噜久久狠狠50岁| 精品1区2区| 欧美成人激情在线| 欧美激情精品久久久久久变态| 日韩视频久久| 亚洲最黄网站| 国产精品午夜在线观看| 久久xxxx| 久久综合九色综合久99| 亚洲精品国产精品国自产观看浪潮| 亚洲国产婷婷| 欧美午夜精彩| 欧美在线视频免费播放| 久久大香伊蕉在人线观看热2| 永久域名在线精品| 亚洲国产精品视频| 欧美日韩一区综合| 久久福利资源站| 久久一区视频| 一二三区精品| 亚洲欧美在线播放| 亚洲夫妻自拍| 一区二区毛片| 国内精品久久久久影院优| 免费观看不卡av| 欧美激情久久久久| 亚洲男人的天堂在线观看| 性欧美xxxx大乳国产app| 在线播放中文字幕一区| 亚洲日本aⅴ片在线观看香蕉| 国产精品激情| 男女av一区三区二区色多| 欧美另类在线播放| 久久精品国产第一区二区三区最新章节 | 欧美久久99| 香港久久久电影| 卡一卡二国产精品| 亚洲资源av| 久久久夜精品| 亚洲色无码播放| 久久精品国产99| 一区二区三区精品视频在线观看 | 国产主播一区二区三区四区| 欧美国产日韩一区二区在线观看 | 亚洲午夜视频在线| 在线国产精品一区| 在线视频欧美精品| 亚洲福利一区| 亚洲综合丁香| 亚洲美女视频在线免费观看| 香蕉成人久久| 夜久久久久久| 久久久久久久一区二区三区| 中文日韩在线视频| 久久综合狠狠| 欧美亚洲日本网站| 欧美激情视频一区二区三区在线播放 | 亚洲激情影院| 国产综合欧美| 在线亚洲成人| 亚洲激情成人在线| 欧美一区二区成人6969| 亚洲天堂第二页|