本文整理汇总了C++中CComboBox::GetDC方法的典型用法代码示例。如果您正苦于以下问题:C++ CComboBox::GetDC方法的具体用法?C++ CComboBox::GetDC怎么用?C++ CComboBox::GetDC使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CComboBox
的用法示例。
在下文中一共展示了CComboBox::GetDC方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FillComboToolTip
bool CPPageBase::FillComboToolTip(CComboBox& comboBox, TOOLTIPTEXT* pTTT)
{
bool bNeedTooltip = false;
CDC* pDC = comboBox.GetDC();
CFont* pFont = comboBox.GetFont();
CFont* pOldFont = pDC->SelectObject(pFont);
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);
CRect comboBoxRect;
comboBox.GetWindowRect(comboBoxRect);
comboBoxRect.right -= GetSystemMetrics(SM_CXVSCROLL) + 2 * GetSystemMetrics(SM_CXEDGE);
int i = comboBox.GetCurSel();
CString str;
comboBox.GetLBText(i, str);
CSize textSize;
textSize = pDC->GetTextExtent(str);
pDC->SelectObject(pOldFont);
comboBox.ReleaseDC(pDC);
textSize.cx += tm.tmAveCharWidth;
if (textSize.cx > comboBoxRect.Width()) {
bNeedTooltip = true;
if (str.GetLength() > _countof(pTTT->szText) - 1) {
str.Truncate(_countof(pTTT->szText) - 1);
}
_tcscpy_s(pTTT->szText, str);
pTTT->hinst = nullptr;
}
return bNeedTooltip;
}
示例2: UpdateHorzExtent
void UpdateHorzExtent(CComboBox &rctlComboBox, int iIconWidth)
{
int iItemCount = rctlComboBox.GetCount();
if (iItemCount > 0)
{
CDC *pDC = rctlComboBox.GetDC();
if (pDC != NULL)
{
// *** To get *ACCURATE* results from 'GetOutputTextExtent' one *MUST*
// *** explicitly set the font!
CFont *pOldFont = pDC->SelectObject(rctlComboBox.GetFont());
CString strItem;
int iMaxWidth = 0;
for (int i = 0; i < iItemCount; i++)
{
rctlComboBox.GetLBText(i, strItem);
int iItemWidth = pDC->GetOutputTextExtent(strItem, strItem.GetLength()).cx;
if (iItemWidth > iMaxWidth)
iMaxWidth = iItemWidth;
}
pDC->SelectObject(pOldFont);
rctlComboBox.ReleaseDC(pDC);
// Depending on the string (lot of "M" or lot of "i") sometime the
// width is just a few pixels too small!
iMaxWidth += 4;
if (iIconWidth)
iMaxWidth += 2 + iIconWidth + 2;
rctlComboBox.SetHorizontalExtent(iMaxWidth);
if (rctlComboBox.GetDroppedWidth() < iMaxWidth)
rctlComboBox.SetDroppedWidth(iMaxWidth);
}
}
else
rctlComboBox.SetHorizontalExtent(0);
}