请问如何设置ComboBox的字体

vibration 2000-04-22 03:10:00
SetFont居然不行
...全文
1117 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
vibration 2000-04-26
  • 打赏
  • 举报
回复
终于整明白了,原来SetFont是可以用的,只是字体尺寸种类有限。
多谢各位大侠指点。
dayspring 2000-04-25
  • 打赏
  • 举报
回复
1.生成一個新類CMyComboBox,繼承CComboBox
2.重載WM_CREATE,并增加變量 CFont m_font;
3.在OnCreate()里加如下代碼:

//設置字體
LOGFONT logFont;
CClientDC dc(this);

::EnumFontFamilies(dc.m_hDC, _T("新細明體"),
FontEnumProc, (LPARAM)&logFont);

// change the weight and create the font
int PointSize = 12;
logFont.lfWeight = FW_NORMAL;
logFont.lfHeight = -MulDiv(PointSize, GetDeviceCaps(dc, LOGPIXELSY), 72);
logFont.lfWidth = 0;

if (m_font.CreateFontIndirect(&logFont))
SetFont(&m_font);

4.函數FontEnumProc()全局性的靜態函數
static int CALLBACK FontEnumProc(const LOGFONT *pLogFont,
const TEXTMETRIC *pTextMetric,
DWORD type, LPARAM pDestLogFont)
{
memcpy((BYTE*)pDestLogFont, pLogFont, sizeof(LOGFONT));
return FALSE; // return the first font in the family(i.e. smallest).
}
5.其餘的控件也可如法炮製
vibration 2000-04-25
  • 打赏
  • 举报
回复
听说可以在OnCtlColor中解决,但不是用SelectObject这么简单,我试了,不行。
我的控件是动态生成的。
scorpion 2000-04-25
  • 打赏
  • 举报
回复
试一下ComboBox的父窗体的afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor )函数,pDC->SelectObject(&myfont);
simon_sun 2000-04-25
  • 打赏
  • 举报
回复
CWnd *pWnd;
CFont fontStock;
fontStock.CreateStockObject(ANSI_FIXED_FONT);
pWnd=GetDlgItem(IDC_TEST_COMBO);
pWnd->SetFont(&fontStock);
vibration 2000-04-24
  • 打赏
  • 举报
回复
我试过取Edit子窗口,再设置字体,但是没用:(
YuHao 2000-04-22
  • 打赏
  • 举报
回复
可能与COMBOBOX的内部机制有关,COMBOBOX大概是由一个EDIT和一个LISTBOX组合而成的,可以用SPY++来看一下,或者用GetWindow查找其子窗口并更改其字体试试看.其实把COMBOBOX设置为自绘风格是比较通用而且保险的办法

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧