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

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>
            欧美在线视频日韩| 欧美国产日韩一区| 国产精品羞羞答答| 欧美在线视频免费播放| 性色一区二区三区| 在线免费观看日韩欧美| 亚洲韩国一区二区三区| 欧美激情视频一区二区三区不卡| 亚洲人成绝费网站色www| 亚洲精品精选| 国产精品视频一区二区高潮| 欧美在线免费| 蜜臀av在线播放一区二区三区| 亚洲人成人一区二区三区| 亚洲精品中文字幕女同| 国产精品自拍三区| 欧美刺激午夜性久久久久久久| 欧美日本久久| 久久九九国产精品怡红院| 免费欧美在线| 性色av一区二区三区| 久久全国免费视频| 亚洲一区二区精品在线| 久久黄色影院| 亚洲一区三区电影在线观看| 久久激情综合网| 9久草视频在线视频精品| 午夜精品一区二区三区在线| 亚洲精品视频在线| 欧美一区日韩一区| 亚洲先锋成人| 免费不卡中文字幕视频| 欧美在线观看网址综合| 欧美黄色一区二区| 久久午夜国产精品| 国产精品久久久久久av下载红粉 | 亚洲影视在线播放| 久久精品1区| 午夜精品亚洲一区二区三区嫩草| 久久久精品动漫| 亚洲欧美日韩专区| 欧美精品乱码久久久久久按摩| 久久成人国产精品| 国产精品日产欧美久久久久| 亚洲电影下载| 亚洲成人在线免费| 欧美一区二区精品在线| 亚洲欧美在线另类| 欧美日韩国产麻豆| 亚洲国产欧美日韩另类综合| 伊人婷婷欧美激情| 欧美一区免费| 久久久久88色偷偷免费| 国产精品久久久99| 日韩一级不卡| 中国日韩欧美久久久久久久久| 久久婷婷麻豆| 欧美a级理论片| 在线成人h网| 久久亚洲一区二区| 欧美99久久| 亚洲国产精品久久久久久女王| 欧美在线观看www| 久久久99爱| 国产一区在线免费观看| 久久av一区二区三区漫画| 久久不见久久见免费视频1| 国产精品中文在线| 欧美一级片久久久久久久| 久久超碰97人人做人人爱| 国产片一区二区| 欧美一区永久视频免费观看| 久久尤物视频| 亚洲电影免费观看高清| 母乳一区在线观看| 亚洲三级电影全部在线观看高清| 亚洲麻豆一区| 欧美午夜视频一区二区| 亚洲欧美怡红院| 久久日韩精品| 亚洲精品欧美在线| 欧美视频中文在线看 | 亚洲视频 欧洲视频| 亚洲免费网址| 国产综合婷婷| 欧美1区3d| 99精品福利视频| 久久国产精品久久久| 国产亚洲综合精品| 欧美成人a视频| 亚洲网站啪啪| 牛人盗摄一区二区三区视频| 亚洲精品在线二区| 国产乱码精品| 久久综合色播五月| 一区二区三区四区在线| 久久婷婷综合激情| 一区二区国产精品| 好吊妞这里只有精品| 欧美高清视频| 欧美一区二区三区在线视频| 欧美护士18xxxxhd| 欧美一区二区三区视频在线观看 | 韩国成人理伦片免费播放| 欧美大片在线观看一区| 亚洲视频自拍偷拍| 欧美黄在线观看| 性色av一区二区三区红粉影视| 影音先锋久久久| 国产精品免费福利| 欧美freesex交免费视频| 亚洲男女自偷自拍图片另类| 欧美激情影音先锋| 久久精品国产亚洲精品 | 国产精品高精视频免费| 久久久五月婷婷| 亚洲综合二区| 亚洲精品一二三| 久久中文在线| 欧美一区二区视频在线观看2020| 亚洲欧洲日产国产网站| 国产一区二区三区高清| 欧美女主播在线| 免费在线亚洲| 久久久久久久波多野高潮日日| 中文一区二区| 日韩一级精品| 亚洲精品视频一区| 亚洲第一福利在线观看| 蜜臀va亚洲va欧美va天堂| 欧美在线观看视频在线 | 在线观看亚洲a| 国产亚洲精品久久久| 国产精品日韩精品| 欧美午夜电影在线| 欧美日韩国产综合新一区| 蜜臀久久99精品久久久画质超高清 | 亚洲国产三级网| 精品成人一区二区三区| 国产一区二区三区直播精品电影| 国产精品v欧美精品v日韩精品| 欧美福利一区二区| 欧美激情小视频| 欧美黄网免费在线观看| 欧美激情性爽国产精品17p| 免费不卡在线观看av| 麻豆freexxxx性91精品| 欧美成人福利视频| 欧美激情麻豆| 欧美三级在线视频| 国产精品国产自产拍高清av王其| 国产精品分类| 国产视频在线观看一区| 狠狠色综合一区二区| 影音国产精品| 亚洲精品一区二| 亚洲性夜色噜噜噜7777| 亚洲欧美资源在线| 久久久久久午夜| 欧美黄污视频| 9人人澡人人爽人人精品| 亚洲小视频在线观看| 性欧美精品高清| 浪潮色综合久久天堂| 欧美护士18xxxxhd| 国产精品日韩久久久久| 国产一区在线观看视频| 亚洲国产精品激情在线观看| 一本到高清视频免费精品| 亚洲一区亚洲| 老鸭窝亚洲一区二区三区| 亚洲第一主播视频| 一区二区三区日韩欧美| 欧美一级免费视频| 欧美不卡视频一区| 国产精品久久久久一区| 精品成人在线视频| aa国产精品| 久久久久久噜噜噜久久久精品| 欧美成人一二三| 一区二区黄色| 噜噜噜久久亚洲精品国产品小说| 欧美日韩hd| 伊人一区二区三区久久精品| 99精品久久| 久久综合亚州| 一区二区三区视频在线播放| 久久成人国产精品| 国产精品a级| 亚洲日本激情| 久久嫩草精品久久久精品一| 日韩网站免费观看| 久久婷婷影院| 国产在线观看91精品一区| 一片黄亚洲嫩模| 欧美激情精品久久久久久黑人| 亚洲一区二区伦理| 欧美日韩一卡二卡| 亚洲人成网在线播放| 久久综合999|