¡¡

Ïà¹Ø·ÖÀà VCÈëÃÅ ->VC ->VCShare

Æß ¹¤¾ßÀ¸

¹Ø¼ü×Ö VC ¹¤¾ßÀ¸

Ö÷ÒªÄÚÈÝ£º

1£¬ ¸ÅÒª¡£

2£¬ ³£Óú¯Êý

3£¬ ʵÀý¡£

4£¬ ¶¯Ì¬½¨Á¢¹¤¾ßÌõ

5£¬ ÔÚ¹¤¾ßÀ¸ÖÐǶ¿Ø¼þ

6£¬ ÓöԻ°¿ò¼Óλͼ°´Å¥×÷¹¤¾ßÌõ



ÎÒÃÇ¿ÉÒÔÔÚ×ÊÔ´±à¼­Æ÷µÄToolBarÉϵ¥»÷ÓÒ¼ü£¬Ñ¡ÔñInsert ToolBar,Ñ¡ÖÐÒ»¸ö¹¤¾ßÀ¸ºó£¬ÔÚÓÒ±ßË«»÷ËüµÄÒ»Ïî¾Í¿ÉÒԱ༭ÁË¡£ÎÒÃÇ¿ÉÒÔÓÃͼÐι¤¾ßÌõ¼°ÑÕÉ«ºÐ»­ËüµÄÍâ±í£¬ËüµÄÊôÐÔÓÐID£¬³¤£¬¿í¼°Êó±êÖ¸ÏòËüʱµÄ˵Ã÷¡£

Ò»°ãCToolBar¶¨ÒåÔÚCMainFrameÖУ¬ÆäʵÏÖÔÚCMainFrameµÄOnCreateº¯ÊýÖÐÍê³É¡£

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP

| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||

!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))

{

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

return -1; // fail to create

}

m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

EnableDocking(CBRS_ALIGN_ANY);

DockControlBar(&m_wndToolBar);





Bool Create(CWnd *pParentWnd,

DWORD dwStu;e = WS_CHILD | WS_VISIBLE |CBRS_TOP,

UINT nID = AFX_IDW_TOOLBAR);

pParentWndÖ¸¶¨ËùÊô´°¿Ú¡£

dwStyle Ö¸¶¨¹¤¾ßÀ¸·ç¸ñ

CBRS_TOP ÔÊÐí¹¤¾ßÀ¸Î»ÓÚ¿ò¼Ü´°¿Ú¶¥¶Ë¡£

CBRS_BOTTOM ÔÊÐí¹¤¾ßÀ¸Î»ÓÚ¿ò¼Ü´°¿Úµ×¶Ë

CBRS_NOALIGN ¸¸´°¿Ú¸Ä±ä³ß´çºó¹¤¾ßÀ¸Î»Öò»±ä

CBRS_TOOLTIPS ¹¤¾ßÀ¸ÏÔʾÌáʾÌõ

CBRS_SIZE_DYNAMIC ¹¤¾ßÐÒÊǶ¯Ì¬µÄ

CBRS_SIZE_FIXED ¹¤¾ßÀ¸Êǹ̶¨µÄ

CBRS_FLOATING ¹¤¾ßÀ¸ÊǸ¡¶¯µÄ

CBRS_FLYBY µ±Êó±ê´ÓÃüÁî°´Å¥ÉÏÂÓ¹ýʱÏÔʾÌáʾÐÅÏ¢

CBRS_HIDE_INPLACE ¹¤¾ßÀ¸¶ÔÓû§²»¿É¼û



SetButtonStyle()º¯ÊýÓÃÀ´É趨ÃüÁî°´Å¥µÄ·ç¸ñ»ò¼ä¸ôÇø,»òÉèΪһ×é,°´Å¥µÄ·ç¸ñ¾ö¶¨Á˰´Å¥µÄÍâòºÍ¶ÔÓû§µÄ·´Ó¦·½Ê½.

Void SetButtonStyle(int nIndex,UINT nStyle);

nIndex Ö¸¶¨¹¤¾ßÀ¸Öа´Å¥»ò¼ä¸ôµÄË÷ÒýºÅ.

nStyle TBBS_BUTTON ±ê×¼°´Å¥,´ËΪĬÈÏÖµ

TBBS_SEPARATOR ¼ä¸ôÇø

TBBS_CHECKBOX ×Ô¶¯È·ÈÏÇø

TBBS_GROUP ±ê¼ÇΪһ×é°´Å¥µÄ¿ªÊ¼

TBBS_CHECKGROUP ±ê¼ÇΪһ×éÈ·ÈÏ¿òµÄ¿ªÊ¼



ControlBarÀàµÄEnableDockingº¯ÊýºÍCFrameWndÀàµÄDockControlBarº¯ÊýÅäºÏ,É趨¹¤¾ßÀ¸µÄ¿É»î¶¯ÐÔ.

Void EanbleDocking(DWORD dwStyle)

CBRS_ALIGN_TOP ÔÊÐí¹¤¾ßÀ¸Î»ÓÚ¿Í»§ÇøÉϲà

CBRS_ALIGN_BOTTOM ÔÊÐí¹¤¾ßÀ¸Î»ÓÚ¿Í·¿ÇøÏ²à

CBRS_ALIGN_LEFT ÔÊÐí¹¤¾ßÀ¸Î»ÓÚ¿Í»§Çø×ó²à

CBRS_ALIGN_RIGHT ÔÊÐí¹¤¾ßÀ¸Î»ÓÚ¿Í»§ÇøÓÒ²à

CBRS_ALIGN_ANY ÔÊÐí¹¤¾ßÀ¸Î»ÓÚ¿Í»§ÇøµÄÈÎÒâλÖÃ

CBRS_FLOAT_MULTI ÔÊÐí¶à¸ö¿ØÖÆÀ¸ÔÚÒ»¸öÃÔÄã¿ò¼Ü´°¿ÚÖи¡¶¯



Void DockControlBar(¡­.)

pBar Òª¸¡¶¯µÄ¿ØÖÆÀ¸Ö¸Õë.

nDockBarIDÖ¸¶¨ÔÊÐí¸¡¶¯µÄλÖÃ,»òΪ0Ôò²»ÔÊÐí¸¡¶¯,¿ÉÒÔÓÉÏÂÁÐÖµ×éºÏ¶ø³É:

AFX_IDW_DOCKBAR_TOP ¿ØÖÆÀ¸ÖÃÓÚ¿ò¼Ü´°¿ÚÉϲà;

AFX_IDW_DOCKBAR_BOTTOM ¿ØÖÆÀ¸ÖÃÓÚ¿ò¼Ü´°¿Úϲà

AFX_IDW_DOCKBAR_LEFT ¿ØÖÆÀ¸ÖÃÓÚ¿ò¼Ü´°¿Ú×ó²à

AFX_IDW_DOCKBAR_RIGHT ¿ØÖÆÀ¸ÖÃÓÚ¿ò¼Ü´°¿ÚÓÒ²à





¸Ä±ä¹¤¾ßÀ¸µÄÃüÁî°´Å¥·ç¸ñ£¬¹¤¾ßÀ¸µÄ°´Å¥Ò»°ãĬÈÏΪÃüÁî°´Å¥£¬µ±·Å¿ª±êÊó±ê£¬ÃüÁî°´Å¥¾Í¡±µ¯³öÀ´¡±,Èç¹ûÎÒÃÇÏ£ÍûÃüÁî°´Å¥ÄÜÁôÔÚ±»°´ÉϵÄ״̬£¬¾Í¿ÉÒÔ°ÑÃüÁî°´Å¥µÄ·ç¸ñÉèΪȷÈÏ¿ò¡£ÔÚON_UPDATE_COMMAND_UIÏûÏ¢´¦Àíº¯ÊýÖУ¬Ê¹ÓÃSetCheck()³ÉÔ±º¯ÊýºÍSetRadio()³ÉÔ±º¯Êý¸Ä±ä°´Å¥×´Ì¬¡£

SetCheck()µÄ²ÎÊý0±íʾɾ³ý״̬£¬1±íʾȷÈÏ״̬£¬2±íʾ²»È·ÈÏ״̬

SetRadio()µÄ²ÎÊý0±íʾɾ³ý״̬£¬·Ç0±íʾȷÈÏ״̬¡£



ÎÒÃÇÓÃÓ¦ÓóÌÐòÏòµ¼½¨Á¢Ò»¸öµ¥Îĵµ³ÌÐò£¬ÔÚ¹¤¾ßÀ¸ÖÐÌí¼Ó°´Å¥£¬IDÉ趨ΪID_TIME.ÔÚCMainFrameÀàÌí¼ÓÒ»¸ö²¼¶ûÊý¾ÝÀàÐÍm_bTime,³õʼֵΪfalse.

Ctrl+wÌí¼ÓID_TIMEµÄON_COMMANDTºÍON_UPDATE_COMMAND_UÏûÏ¢ÏìÓ¦º¯Êý¡£

void CMainFrame::OnShowTime()

{

m_bTime = ! m_bTime;

}

void CMainFrame::OnUpdateShowTime(CCmdUI * pCmdUI)

{

pCmdUI ->SetCheck(m_bTime);

}

×¢ÒâÈç¹ûÓÐÒ»¸öͬIDµÄ²Ëµ¥£¬Ëü»á×Ô¶¯¸ù¾Ý°´Å¥µÄÇé¿ö´òÉϹ³¹³¡£



ÊÂʵÉÏÎÒÃÇ¿ÉÒÔ²»ÓÃtoolbar×ÊÔ´½¨Á¢Ò»¸ö¹¤¾ßÌõ¡£´úÂëÈçÏ£º

UINT nID[]=

{ID_FILE_NEW,

ID_FILE_OPEN,

ID_TIME

};

m_wndToolBar.Create(this);

m_wndToolBar.LoadBitmap(IDB_BITMAP1);

m_wndToolBar.SetButtons(nID,sizeof(nID)/sizeof(UINT));

ÆäÖÐλͼµÄ´óСҪºÏÊÊ£¬·ñÔò»áÓ°ÏìÃÀ¹Û£¬×îºóÒ»ÐÐÈü¸¸öIDÓ빤¾ßÀ¸µÄ°´Å¥ºÍÏà¹Ø¡£

Èç¹ûÏëÉèÖÃÿ¸ö°´Å¥µÄ·ç¸ñ£¬¿ÉÒÔ½«×îºóÒ»ÐкóÃæ¼Ó£º

m_wndToolBar.SetButtonStyle(1,TBBS_SEPARATOR);

Ò²¿Ém_wndToolBar.Create(this);

m_wndToolBar.LoadBitmap(IDB_BITMAP1);

m_wndToolBar.SetButtons(NULL,3);

m_wndToolBar.SetButtonInfo(0,ID_FILE_NEW,TBBS_BUTTON,0);

m_wndToolBar.SetButtonInfo(1,ID_FILE_OPEN,TBBS_BUTTON,2);





ÔÚ¹¤¾ßÀ¸ÖÐǶÈë¿Ø¼þ£¬Èç±à¼­¿ò

1£¬ ¶¨ÒåÒ»¸ö±à¼­¿Ø¼þ¶ÔÏ󣬲»ÄÜÊǾֲ¿±äÁ¿£¬·ñÔò»á±»Êͷŵô¡£

2£¬ µ÷ÓÃCreate£¬Î¨Ò»Òª×¢ÒâµÄÊÇλÖÃÒªÔÚ¹¤¾ßÌõµÄµØÅÌÉÏ¡£

CRect rect;

m_wndToolBar.GetItemRect(1,&rect);

edit.Create(WS_CHILD|WS_VISIBLE,rect,&m_wndToolBar,ID_EDIT);



ÓöԻ°¿ò¼Óλͼ°´Å¥×÷¹¤¾ßÀ¸¡£

²åÈëÒ»¸ö¶Ô»°¿ò£¬StylesµÄstyleÉèΪchild,borderÉèΪnone.

ÔÚCMainFrameÖÐm_wndToolBarµÄ¸Ä³ÉCDialogBar£¬²¢¼ÓÒ»¸öCBitmapButton bb;

°Ñ½¨Á¢¹¤¾ßÌõµÄÄÇÒ»¾ä¸ÄΪ£º

m_wndToolBar.Create(this,IDD_DIALOG1,WS_CHILD|WS_VISIBLE|CBRS_TOP,AFX_IDW_STATUS_BAR);

×îºóÒ»ÉÏID ͬ×Ô¼ºËæ±ãÈ·¶¨¡£Ctrl+F5,Ò»¸ö¼«²»ÃÀ¹ÛµÄ¹¤¾ßÌõ¾Í³öÀ´ÁË¡£

¶Ô°´Å¥½øÐÐÕûÀí£¬ËüÃǵĴ¦Àíº¯ÊýÈÔÈ»ÉÏCtrl+w¼Ó¡£½«°´Å¥StylesµÄOwner drawerºÍbitmap¹³ÉÏ¡£Ôڸղŵĵط½¼ÓÒ»¾ä¡£

bb.AutoLoad(IDC_BUTTON1,&m_wndToolBar);

×¢ÒâÄãÐèÒª¼ÓÈý·ùλͼ£¨Ò»·ùÒ²¿ÉÒÔ£©¡£ÈçÄãµÄ°´Å¥µÄÃû×ÖΪX,¸ÕÈý·ùλͼµÄÃû×Ö·Ö±ðΪ¡±XUP¡±,¡±XDOWN¡±,¡±XFOCUS¡±,¼òдΪ¡±XU¡±,¡±XD¡±,¡±XF¡±.




ÉÏһƪ:Áù ¶àÏß³Ì
ÏÂһƪ:°Ë »ù±¾²Ù×÷

¡¡

ƒ