odcombo.cpp

来自「讲mfc的书」· C++ 代码 · 共 65 行

CPP
65
字号
// ODCombo.cpp : implementation file
//

#include "stdafx.h"
#include "buttons.h"
#include "ODCombo.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CODCombo

CODCombo::CODCombo()
{
}

CODCombo::~CODCombo()
{
}


BEGIN_MESSAGE_MAP(CODCombo, CComboBox)
	//{{AFX_MSG_MAP(CODCombo)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CODCombo message handlers

void CODCombo::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
{
  CDC *dc=CDC::FromHandle(lpDrawItemStruct->hDC);
  CString txt;
  if (lpDrawItemStruct->itemData==0)
  {
	  txt="Fixed";
	  dc->SelectStockObject(ANSI_FIXED_FONT);
  }
  else
  {
	  txt="Variable";
	  dc->SelectStockObject(ANSI_VAR_FONT);
  }
  dc->DrawText(txt,-1,&lpDrawItemStruct->rcItem,DT_SINGLELINE|DT_LEFT|DT_VCENTER);
}

void CODCombo::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct) 
{
  CDC *dc=GetDC();
  TEXTMETRIC tm1,tm2;
  dc->SelectStockObject(ANSI_FIXED_FONT);	
  dc->GetTextMetrics(&tm1);
  dc->SelectStockObject(ANSI_VAR_FONT);
  dc->GetTextMetrics(&tm2);
  lpMeasureItemStruct->itemWidth=max(tm1.tmAveCharWidth*25,
								     tm2.tmAveCharWidth*25);
  lpMeasureItemStruct->itemHeight=max(tm1.tmHeight,tm2.tmHeight);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?