在MFC编程中,怎么修改标题栏的字体

例如,修改标题栏字体的大小,把它居中……等等,希望给出具体的函数……先谢谢了!... 例如,修改标题栏字体的大小,把它居中……等等,希望给出具体的函数……先谢谢了! 展开
 我来答
tunsanty
2009-07-30 · TA获得超过344个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:317万
展开全部
就给这么点分啊,分太低,不要使用第二个方法哦, 只许使用第一个 haha

我想到的有两个方法:

1. 这个主意比较馊,缺点滚凯锋是无法设置字体,但可以居中:)
CString m_strCaption = " hahaha"; //加一堆空格,直至居中

2. 添加 WM_NCPAINT 消息函数, 当然可以设置字体以及居中显示

在你的对话框的头文件中, 在消息映射中添加 afx_msg void OnNcPaint();

在你的对话框大晌的cpp文件中, 在消息映射中添加 ON_WM_NCPAINT()
然后再添加这个消息响应函数:

void CXXXDlg::OnNcPaint()
{
CDialog::OnNcPaint();
CDC* pDC = GetWindowDC();
int x = GetSystemMetrics(SM_CXSIZE)+GetSystemMetrics(SM_CXBORDER)+GetSystemMetrics(SM_CXDLGFRAME);
int y = GetSystemMetrics(SM_CYDLGFRAME);
CRect CapRct;
GetWindowRect(&CapRct);
int y1 = GetSystemMetrics(SM_CYICON)-GetSystemMetrics(SM_CYDLGFRAME)-GetSystemMetrics(SM_CYBORDER);
int x1 = CapRct.Width ()- GetSystemMetrics(SM_CXSIZE)-GetSystemMetrics(SM_CXBORDER)-GetSystemMetrics(SM_CXDLGFRAME);

CapRct.left = x;
CapRct.top = y;
CapRct.right = x1;
CapRct.bottom = y1;

/孙兆/pDC->FillSolidRect(&CapRct,RGB(0,0,0));
CFont* pCurFont = GetFont();
LOGFONT lf;
pCurFont->GetLogFont (&lf);
lf.lfItalic = TRUE;
lf.lfWeight = FW_BOLD;
lf.lfHeight = 18;
strcpy(lf.lfFaceName ,"Arial");

CFont capfont ;
capfont.CreateFontIndirect (&lf);
pCurFont = pDC->SelectObject (&capfont);
pDC->SetBkMode (TRANSPARENT);
pDC->SetTextColor (GetSysColor(COLOR_CAPTIONTEXT));

pDC->DrawText ("My Caption" , &CapRct, DT_SINGLELINE | DT_CENTER | DT_VCENTER); //最好定义一个m_strCaption类成员

ReleaseDC(pDC);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-07-30
展开全部
要想改字体当然得像1L那么麻烦才行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lijiakxl
2009-07-30 · TA获得超过231个赞
知道小有建树答主
回答量:481
采纳率:0%
帮助的人:410万
展开全部
1L搞那么麻烦...
SetWindowText(_T("1234"));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式