久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

VS2008 工具欄CMFCToolBar的使用總結

 lyx6988 2013-04-02

(一)自定義工具欄

自定義工具欄,,分兩種情況:一是直接添加工具欄,并自己繪制圖標;二是,,添加工具欄,,然后與BMP關聯(lián),與VC6.0中的自定義彩色工具欄類似,。

1,、  自繪工具欄

1)添加Toolbar 資源,并設置工具條ID,如IDR_TOOLBAR1,;編輯工具條,,添加相應的項,設置項的ID,,繪制各自圖標的,。

2)在MainFrm.h中添加Toolbar變量:

public: 

            CMFCToolBar m_toolbar1;

3)在MainFrm.cpp中的OnCreate中添加代碼:

if((!m_toolbar1.CreateEx(this, TBSTYLE_FLAT, WS_CHILD |WS_VISIBLE |CBRS_TOP |CBRS_GRIPPER |CBRS_TOOLTIPS |CBRS_FLYBY |CBRS_SIZE_DYNAMIC,

CRect(1,1,1,1),IDR_TOOLBAR1)

|| (!m_ toolbar1.LoadToolBar(theApp.m_bHiColorIcons ? IDR_TOOLBAR1 : 0))

{

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

  return -1;      // fail to create

}

m_ toolbar1.SetWindowText(_T("MyToolbar"));

…………

m_ toolbar1.EnableDocking(CBRS_ALIGN_ANY);

…………

DockPane(&m_ toolbar1);

 

4)為各項添加各自需要的響應事件即可。

注意,,VS2008中,,沒有VC6.0那樣方便的ClassWizard,所以,,要在CMainFrame的屬性的事件去找,,若項ID與菜單的ID是相關聯(lián),則能在事件列表中找到相應的ID ;否則,,只得靠手動添加響應事件了。

 

2,、  位圖關聯(lián)工具欄

1)添加Toolbar 資源,,并設置工具條ID,如IDR_TOOLBAR1;編輯工具條,,添加相應的項,,設置項的ID,繪制各自圖標的,。

2)導入自己的位圖資源,,,ID設為:IDB_BITMAP_TOOLBAR

3)在MainFrm.h中添加Toolbar變量:

public:

           CMFCToolBar m_toolbar1;

4)在MainFrm.cpp中的OnCreate中添加代碼:

if((!m_toolbar1.CreateEx(this, TBSTYLE_FLAT, WS_CHILD |WS_VISIBLE |CBRS_TOP |CBRS_GRIPPER |CBRS_TOOLTIPS |CBRS_FLYBY |CBRS_SIZE_DYNAMIC,

CRect(1,1,1,1),IDR_TOOLBAR1)

|| (!m_ toolbar1.LoadToolBar(IDR_TOOLBAR1,0,,0,,TRUE,0,0,IDB_BITMAP_TOOLBAR))

//與前面方法的區(qū)別在此

{

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

  return -1;      // fail to create

}

m_ toolbar1.SetWindowText(_T("MyToolbar"));

…………

m_ toolbar1.EnableDocking(CBRS_ALIGN_ANY);

…………

DockPane(&m_ toolbar1);

5)為各項添加各自需要的響應事件即可。

 

(二)   在工具欄上添加組合框

在網(wǎng)上查找到的資料:

VC2008在CMFCToolBar工具欄中加入組合框:(這種方法,,我沒實現(xiàn)了)

http://hi.baidu.com/zll2117/blog/item/80792e0fe5ce3ad87bcbe1c9.html

VC 2010:CMFCToolbar工具條中加入組合框  :(利用這種方法,,實現(xiàn)了我所要求的功能)

http://zhanyonhu.blog.163.com/blog/static/161860442010111595752929/

總結得出,在工具欄上添加組合框的操作如下:

1)自定義ComboBox的ID,。在Resource.h中定義為(自己手動添加的定義)

#define  IDR_COM             32800

2)在MainFrm.h中添加工具欄組合框指針變量:

public:

            CMFCToolBarComboBoxButton  *m_comboButton;

3)在MainFrm.cpp中的OnCreate中添加代碼:

       …………

       m_comboButton = new CMFCToolBarComboBoxButton(IDR_COM,,

              GetCmdMrg()->GetCmdImage(IDR_COM,FALSE),// 工具條位圖中的圖像序號

              CBS_DROPDOWNLIST,                                             //組合框類型

               100);                                                                             //組合框的寬度

       m_ comboButton->EnableWindow(TRUE);

       m_ comboButton->SetCenterVert();

       m_ comboButton->SetDropDownHeight(100);//設置下拉列表的高度

       m_ comboButton->SetFlatMode();

       //添加內(nèi)容

       m_ comboButton->AddItem(_T(“Once”));

       m_ comboButton->AddItem(_T(“If Only”));

       m_ comboButton->AddItem(_T(“P.S.I Love You”));

       m_ comboButton->AddItem(_T(“Love Me If You Dare”));

       m_ comboButton->SelectItem(0);//默認選中

      

       //添加到工具欄

       m_wndToolBar.InsertSeparator();//先添加分隔條

       m_wndToolBar.InsertButton(m_ comboButton);

//在使用中,遇到這個情況,,MSDN中InsertButton為public成員函數(shù),,而在CMFCToolBar類的聲明中卻為protected成員,,我解決的方法是把它改為public成員。目前我沒有找其他解決方法,。若以后找到,,再更新。

…………

4)添加響應

1)在MainFrm.h中添加:

       afx_msg void OnSelChangeClick();//SEL_CHANGE

       afx_msg void OnClickComboBox();//ON_COMMAND

2)在MainFrm.cpp中添加消息映射和消息響應函數(shù)

……

       ON_CBN_SELCHANGE(IDR_COM, &CMainFrame::OnSelChangeClick)

       ON_COMMAND(IDR_COM, &CMainFrame::OnClickComboBox)

END_MESSAGE_MAP()

 

void CMainFrame::OnSelChangeClick()

{

       //可以添加需要處理的代碼

}

 

void CMainFrame::OnClickComboBox()

{

       //不做任何處理,,但必須添加,,否則組合框是灰色不可用的

}

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多