做团购网站商品从哪里找,个体户可以备案网站吗,门户网站建设理由,求职网站网页设计使用过IE浏览器的朋友都知道IE界面上的扁平工具条、地址栏#xff0c;扁平工具栏上的按钮正常状态下为扁平态#xff0c;按钮上的图像为灰色#xff0c;当鼠标放在按钮上时#xff0c;按钮突 起#xff08;这种状态称为手柄#xff09;#xff0c;并且其上的图像变得鲜艳… 使用过IE浏览器的朋友都知道IE界面上的扁平工具条、地址栏扁平工具栏上的按钮正常状态下为扁平态按钮上的图像为灰色当鼠标放在按钮上时按钮突 起这种状态称为手柄并且其上的图像变得鲜艳醒目一些按钮上还有汉字说明或标有小黑三角的下拉按钮单击时显示下拉菜单这些技术是怎么实现的呢 本文针对这些问题介绍了如何利用VC编程来实现它们。 IE风格的实现主要在主框架类的 CMainFrame::OnCreate实现它的主要思想如下首先定义一个CReBar对象用以作工具条、地址栏的容器然后分别声明图像列 表对象img用于存储工具栏上按钮的热点图像和正常状态下显示的图像。为了显示扁平工具栏需要用CreateEx函数创建CToolBar对象 m_wndToolBar,用ModifyStyle函数将工具栏的风格设为扁平类型你不能用CToolBar::Create 或 CToolBar:: SetBarStyle设置这种新风格。CToolBar 类不支持TBSTYLE_FLAT.要解决这个问题必须绕过CToolBar类使用CWnd::ModifyStyle。工具栏对象调用 SetButtonInfo设置按钮的风格为TBSTYLE_DROPDOWN,就可以将工具栏按钮设置为附带有下拉按钮。至于按钮带有中文提示用 工具栏的SetButtonText就可以轻松实现了。下面是实现IE风格界面的部分代码和注释 int CMainFrame::OnCreateLPCREATESTRUCT lpCreateStruct { CReBar m_wndReBar;//声明CReBar对象 CImageList img;//声明图像列表对象 CString str; if CFrameWnd::OnCreatelpCreateStruct -1 return -1; if m_wndReBar.Createthis//创建CReBar对象 { TRACE0Failed to create rebar\n return -1; // fail to create } if m_wndToolBar.CreateExthis//创建工具条对象 { TRACE0Failed to create toolbar\n return -1; // fail to create } // set up toolbar properties m_wndToolBar.GetToolBarCtrl。SetButtonWidth50, 150 file://设置工具条上按钮的最大、最小尺寸 m_wndToolBar.GetToolBarCtrl。SetExtendedStyleTBSTYLE_EX_DRAWDDARROWS file://工具条可以带有下拉按钮 img.CreateIDB_HOTTOOLBAR, 22, 0, RGB255, 0, 255 file://向图像列表装载热点图像资源IDB_HOTTOOLBAR为热点图像资源ID m_wndToolBar.GetToolBarCtrl。SetHotImageListimg//工具条装载热点图像 img.Detach img.CreateIDB_COLDTOOLBAR, 22, 0, RGB255, 0, 255 file://图象列表装载正常状态的图像资源IDB_COLDTOOLBAR为图像资源ID m_wndToolBar.GetToolBarCtrl。SetImageListimg//将图像装入工具条 img.Detach m_wndToolBar.ModifyStyle0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT file://工具条为扁平风格 m_wndToolBar.SetButtonsNULL, 9//工具条上有9个按钮 // set up each toolbar button file://以下分别对九个按钮分别设置风格和按钮汉语提示 m_wndToolBar.SetButtonInfo0, ID_BUTTON0, TBSTYLE_BUTTON, 0 str.LoadStringIDS_ BUTTON0 m_wndToolBar.SetButtonText0, str m_wndToolBar.SetButtonInfo1, ID_BUTTON1, TBSTYLE_BUTTON, 1 str.LoadStringIDS_ BUTTON1 m_wndToolBar.SetButtonText1, str m_wndToolBar.SetButtonInfo2, ID_BUTTON2, TBSTYLE_BUTTON, 2 str.LoadStringIDS_ BUTTON2 m_wndToolBar.SetButtonText2, str m_wndToolBar.SetButtonInfo3, ID_BUTTON3, TBSTYLE_BUTTON, 3 str.LoadStringIDS_ BUTTON3 m_wndToolBar.SetButtonText3, str m_wndToolBar.SetButtonInfo4, ID_BUTTON4, TBSTYLE_BUTTON, 4 str.LoadStringIDS_ BUTTON4 m_wndToolBar.SetButtonText4, str m_wndToolBar.SetButtonInfo5, ID_BUTTON5, TBSTYLE_BUTTON, 5 str.LoadStringIDS_ BUTTON5 m_wndToolBar.SetButtonText5, str m_wndToolBar.SetButtonInfo6, ID_BUTTON6, TBSTYLE_BUTTON | TBSTYLE_DROPDOWN, 6 str.LoadStringIDS_ BUTTON6 m_wndToolBar.SetButtonText6, str m_wndToolBar.SetButtonInfo7, ID_BUTTON7, TBSTYLE_BUTTON, 7 str.LoadStringIDS_ BUTTON7 m_wndToolBar.SetButtonText7, str m_wndToolBar.SetButtonInfo8,ID_BUTTON8, TBSTYLE_BUTTON | TBSTYLE_DROPDOWN, 8 str.LoadStringIDS_ BUTTON8 m_wndToolBar.SetButtonText8, str file://重新调整按钮的尺寸 CRect rectToolBar; m_wndToolBar.GetItemRect0, rectToolBar//得到工具条第一个按钮的尺寸 m_wndToolBar.SetSizesrectToolBar.Size CSize30,20 file://第一个参数为按钮尺寸第二个参数为图像尺寸 file://创建一个组合框作为地址栏 if m_wndAddress.CreateCBS_DROPDOWN | WS_CHILD, CRect0, 0, 200, 120 this, AFX_IDW_TOOLBAR 1 { TRACE0Failed to create combobox\n return -1; // fail to create } file://加入工具栏、地址栏 m_wndReBar.AddBarm_wndToolBar str.LoadStringIDS_ADDRESS m_wndReBar.AddBarm_wndAddress, str, NULL, RBBS_FIXEDBMP | RBBS_BREAK file://定义REBARBANDINFO对象对工具条和地址栏设置理想尺寸 REBARBANDINFO rbbi; rbbi.cbSize sizeofrbbi rbbi.fMask RBBIM_CHILDSIZE | RBBIM_IDEALSIZE | RBBIM_SIZE; rbbi.cxMinChild rectToolBar.Width rbbi.cyMinChild rectToolBar.Height rbbi.cx rbbi.cxIdeal rectToolBar.Width * 9; m_wndReBar.GetReBarCtrl。SetBandInfo0, rbbi//设置工具栏尺寸 rbbi.cxMinChild 0; CRect rectAddress; rbbi.fMask RBBIM_CHILDSIZE | RBBIM_IDEALSIZE; m_wndAddress.GetEditCtrl-GetWindowRectrectAddress rbbi.cyMinChild rectAddress.Height 10; rbbi.cxIdeal 200; m_wndReBar.GetReBarCtrl。SetBandInfo2, rbbi//设置地址栏尺寸 m_wndToolBar.SetBarStylem_wndToolBar.GetBarStyle | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED if m_wndStatusBar.Createthis || !m_wndStatusBar.SetIndicatorsindicators, sizeofindicators/sizeofUINT { TRACE0Failed to create status bar\n return -1; // fail to create } return 0; } 转载于:https://blog.51cto.com/3403450/808359