VC++实现工具栏上添加平面组合框控件Word文件下载.docx

上传人:b****2 文档编号:3254446 上传时间:2023-05-01 格式:DOCX 页数:11 大小:25.49KB
下载 相关 举报
VC++实现工具栏上添加平面组合框控件Word文件下载.docx_第1页
第1页 / 共11页
VC++实现工具栏上添加平面组合框控件Word文件下载.docx_第2页
第2页 / 共11页
VC++实现工具栏上添加平面组合框控件Word文件下载.docx_第3页
第3页 / 共11页
VC++实现工具栏上添加平面组合框控件Word文件下载.docx_第4页
第4页 / 共11页
VC++实现工具栏上添加平面组合框控件Word文件下载.docx_第5页
第5页 / 共11页
VC++实现工具栏上添加平面组合框控件Word文件下载.docx_第6页
第6页 / 共11页
VC++实现工具栏上添加平面组合框控件Word文件下载.docx_第7页
第7页 / 共11页
VC++实现工具栏上添加平面组合框控件Word文件下载.docx_第8页
第8页 / 共11页
VC++实现工具栏上添加平面组合框控件Word文件下载.docx_第9页
第9页 / 共11页
VC++实现工具栏上添加平面组合框控件Word文件下载.docx_第10页
第10页 / 共11页
VC++实现工具栏上添加平面组合框控件Word文件下载.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VC++实现工具栏上添加平面组合框控件Word文件下载.docx

《VC++实现工具栏上添加平面组合框控件Word文件下载.docx》由会员分享,可在线阅读,更多相关《VC++实现工具栏上添加平面组合框控件Word文件下载.docx(11页珍藏版)》请在冰点文库上搜索。

VC++实现工具栏上添加平面组合框控件Word文件下载.docx

rect.top+=2;

rect.bottom+=200;

//创建并显示

if(!

m_wndToolBar.m_wndZoom.Create(WS_CHILD|WS_VISIBLE|

CBS_AUTOHSCROLL|CBS_DROPDOWNLIST|

CBS_HASSTRINGS,rect,&

m_wndToolBar,ID_TOOL_ZOOM))

{

 TRACE0("

Failedtocreatecombo-box\n"

);

 returnFALSE;

}

m_wndToolBar.m_wndZoom.ShowWindow(SW_SHOW);

//填充内容

m_wndToolBar.m_wndZoom.AddString("

25%"

50%"

75%"

100%"

125%"

150%"

175%"

200%"

m_wndToolBar.m_wndZoom.SetCurSel(3);

  但是仅仅产生平面组合框是不够的,必须实现组合框的消息响应函数,才能方便地运用组合框。

在VsiaulC++中,消息响应函数通常都是用类向导来实现,但是此处由于组合框是用函数创建的,所以必须亲自动手来写代码,也并不麻烦,与类向导生成的代码格式是一样的,可以参照来写。

下面代码定义了组合框的选择变化消息响应函数:

///////////////////////////////////////////////////////////////////////////////////////////////

BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)

//{{AFX_MSG_MAP(CMainFrame)

 ON_WM_CREATE()

 ON_CBN_SELENDOK(ID_TOOL_ZOOM,OnSelectZoomed)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

//////////////////////////////////////////////////////////////////////////////////////////////

afx_msgvoidOnSelectZoomed();

  二、编程步骤

  1、启动VisualC++6.0,生成一个单文档项目,将该项目命名为"

ToolBar"

  2、通过资源编辑器新增一个工具按钮,"

Caption"

设置为空,ID资源标志符命名为ID_TOOL_ZOOM;

  3、启动ClassWizard从CToolBar派生一个新类CMainToolBar;

  4、在MainFrm.h文件中添加#include"

MainToolBar.h"

语句,然后找到CToolBarm_wndToolBar语句,用CMainToolBar代替CToolBar;

  5、添加代码,编译运行程序。

  三、程序代码

////////////////////////////////////////////////////

//FlatComboBox.h:

headerfile

#if!

defined(FLATCOMBOBOX_H_INCLUDED)

#defineFLATCOMBOBOX_H_INCLUDED

#if_MSC_VER>

1000

#pragmaonce

#endif//_MSC_VER>

#defineFC_DRAWNORMAL0x00000001

#defineFC_DRAWRAISED0x00000002

#defineFC_DRAWPRESSD0x00000004

//CFlatComboBoxwindow

classCFlatComboBox:

publicCComboBox

 //Construction

 public:

  CFlatComboBox();

  //Attributes

  boolm_bLBtnDown;

  COLORREFm_clrHilite;

  COLORREFm_clrShadow;

  COLORREFm_clrDkShad;

  COLORREFm_clrButton;

  //Operations

  voidDrawCombo(DWORDdwStyle,COLORREFclrTopLeft,

COLORREFclrBottomRight);

  intOffset();

  //Overrides

  //ClassWizardgeneratedvirtualfunctionoverrides

  //{{AFX_VIRTUAL(CFlatComboBox)

  //}}AFX_VIRTUAL

  //Implementation

  virtual~CFlatComboBox();

  //Generatedmessagemapfunctions

 protected:

  //{{AFX_MSG(CFlatComboBox)

   afx_msgvoidOnMouseMove(UINTnFlags,CPointpoint);

   afx_msgvoidOnLButtonDown(UINTnFlags,CPointpoint);

   afx_msgvoidOnLButtonUp(UINTnFlags,CPointpoint);

   afx_msgvoidOnTimer(UINTnIDEvent);

   afx_msgvoidOnPaint();

  //}}AFX_MSG

 DECLARE_MESSAGE_MAP()

};

#endif//!

///////////////////////////////////////////

#include"

stdafx.h"

FlatComboBox.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////CFlatComboBox

CFlatComboBox:

CFlatComboBox()

 m_bLBtnDown=false;

~CFlatComboBox()

{}

BEGIN_MESSAGE_MAP(CFlatComboBox,CComboBox)

 //{{AFX_MSG_MAP(CFlatComboBox)

  ON_WM_MOUSEMOVE()

  ON_WM_LBUTTONDOWN()

  ON_WM_LBUTTONUP()

  ON_WM_TIMER()

  ON_WM_PAINT()

 //}}AFX_MSG_MAP

/////////////////////////////////CFlatComboBoxmessagehandlers

voidCFlatComboBox:

OnMouseMove(UINTnFlags,CPointpoint)

 SetTimer(1,10,NULL);

 CComboBox:

OnMouseMove(nFlags,point);

OnLButtonDown(UINTnFlags,CPointpoint)

 m_bLBtnDown=true;

OnLButtonDown(nFlags,point);

OnLButtonUp(UINTnFlags,CPointpoint)

 Invalidate();

OnLButtonUp(nFlags,point);

OnTimer(UINTnIDEvent)

 POINTpt;

 GetCursorPos(&

pt);

 CRectrcItem;

 GetWindowRect(&

rcItem);

 staticboolbPainted=false;

 //OnLButtonDown,showpressed.

 if(m_bLBtnDown==true){

  KillTimer

(1);

  if(bPainted==true){

   DrawCombo(FC_DRAWPRESSD,:

GetSysColor(COLOR_BTNSHADOW),:

GetSysColor(COLOR_BTNHIGHLIGHT));

   bPainted=false;

  }

  return;

 }

 //Ifmouseleaves,showflat.

 if(!

rcItem.PtInRect(pt)){

   DrawCombo(FC_DRAWNORMAL,:

GetSysColor(COLOR_BTNFACE),:

GetSysColor(COLOR_BTNFACE));

 //Onmouseover,showraised.

 else{

  if(bPainted==true)

   return;

  else{

   bPainted=true;

   DrawCombo(FC_DRAWRAISED,:

GetSysColor(COLOR_BTNSHADOW),:

OnTimer(nIDEvent);

OnPaint()

 Default();

 DrawCombo(FC_DRAWNORMAL,:

GetSysColor(COLOR_BTNFACE),:

DrawCombo(DWORDdwStyle,COLORREFclrTopLeft,

COLORREFclrBottomRight)

 GetClientRect(&

 CDC*pDC=GetDC();

 //Coverupdark3Dshadow.

 pDC->

Draw3dRect(rcItem,clrTopLeft,clrBottomRight);

 rcItem.DeflateRect(1,1);

IsWindowEnabled()){

  pDC->

Draw3dRect(rcItem,:

GetSysColor(COLOR_BTNHIGHLIGHT),:

 //Coverupdark3Dshadowondroparrow.

 rcItem.left=rcItem.right-Offset();

GetSysColor(COLOR_BTNFACE),

 //Coverupnormal3Dshadowondroparrow.

 switch(dwStyle)

 {

  caseFC_DRAWNORMAL:

   rcItem.top-=1;

   rcItem.bottom+=1;

   pDC->

GetSysColor(COLOR_BTNHIGHLIGHT),:

   rcItem.left-=1;

   break;

  caseFC_DRAWRAISED:

GetSysColor(COLOR_BTNSHADOW));

  caseFC_DRAWPRESSD:

   rcItem.OffsetRect(1,1);

  ReleaseDC(pDC);

 intCFlatComboBox:

Offset()

  //ThankstoToddBrannamforthissuggestion...

  return:

GetSystemMetrics(SM_CXHTHUMB);

 ///////////////////////////MainToolBar.h:

interfacefortheCMainToolBarclass.

 #if!

defined(AFX_MAINTOOLBAR_H__76CF28F4_005F_11D7_8F58_00E04C0BECE6__INCLUDED_)

 #defineAFX_MAINTOOLBAR_H__76CF28F4_005F_11D7_8F58_00E04C0BECE6__INCLUDED_

 #if_MSC_VER>

 #pragmaonce

 #endif//_MSC_VER>

 #include"

 classCMainToolBar:

publicCToolBar

  public:

   CMainToolBar();

   virtual~CMainToolBar();

   CFlatComboBoxm_wndZoom;

 };

 #endif

 //////////////MainToolBar.cpp:

implementationoftheCMainToolBarclass.

ToolBar.h"

 #ifdef_DEBUG

 #undefTHIS_FILE

 staticcharTHIS_FILE[]=__FILE__;

 #definenewDEBUG_NEW

 #endif

 CMainToolBar:

CMainToolBar()

 {}

~CMainToolBar()

 ////////////////////////////////////////////////////////////

 intCMainFrame:

OnCreate(LPCREATESTRUCTlpCreateStruct)

  if(CFrameWnd:

OnCreate(lpCreateStruct)==-1)

   return-1;

  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("

Failedtocreatetoolbar\n"

//failtocreate

m_wndStatusBar.Create(this)||!

m_wndStatusBar.SetIndicators(indicators,

sizeof(indicators)/sizeof(UINT)))

Failedtocreatestatusbar\n"

  //TODO:

Deletethesethreelinesifyoudon'

twantthetoolbartobedockable

  m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

  EnableDocking(CBRS_ALIGN_ANY);

  DockControlBar(&

m_wndToolBar);

  intindex=0;

  RECTrect;

  //找到指定的工具项

  while(m_wndToolBar.GetItemID(index)!

=ID_TOOL_ZOOM)

   index++;

   //设置指定工具项的宽度并获取新的区域80是宽度

   m_wndToolBar.SetButtonInfo(index,ID_TOOL_ZOOM,TBBS_SEPARATOR,80);

   m_wndToolBar.GetItemRect(index,&

   //设置位置

   rect.top+=2;

   rect.bottom+=200;

   //创建并显示

   if(!

m_wndToolBar.m_wndZoom.Create(WS_CHILD|WS_VISIBLE|

CBS_AUTOHSCROLL|CBS_DROPDOWNLIST|

   {

    TRACE0("

    returnFALSE;

   }

   m_wndToolBar.m_wndZoom.ShowWindow(SW_SHOW);

   //填充内容

   m_wndToolBar.m_wndZoom.Add

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2