改变单视图文档的标题栏字体大小 单文档视图字体mfc 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 OnNcPaint中指定特定的字体,然后调用基类的OnNcPaint?没有试过,lz可以试试看 我是菜鸟。麻烦您告诉我下,在哪调用OnNcPaint?LRESULT CMainFrame::DefWindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam){ if (nMsg==WM_NCPAINT) { OnNcPaint(); } return CMainFrame::DefWindowProc(nMsg,wParam,lParam);}我也不懂这个代码,然后显示是堆栈溢出麻烦了。 DefWindowProc这个是窗口过程的核心,不要自己去改写点击类,在属性窗口中点击消息标签,WM_NCPAIT,将OnNcPaint点出来 谢谢您。我在OnNcPaint()中重绘字体后,标题栏就只剩字体了。最大化那三个按钮也找不到了。整个标题栏都是白色,并且非全屏的时候,点击窗口以外的地方,就会变成系统初始化的标题栏。这是为什么呢?void CMainFrame::OnNcPaint(){ // TODO: 在此处添加消息处理程序代码 // 不为绘图消息调用 CFrameWndEx::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 m_lf; memset(&m_lf, 0, sizeof(LOGFONT)); // zero out structure m_lf.lfHeight = 20; m_lf.lfQuality=NONANTIALIASED_QUALITY; _tcsncpy_s(m_lf.lfFaceName, LF_FACESIZE,_T("Times New Roman"), 20); CFont capfont ; capfont.CreateFontIndirect (&m_lf); pCurFont = pDC->SelectObject (&capfont); pDC->DrawText(L"My Caption" , &CapRct, DT_CENTER ); //最好定义一个m_strCaption类成员 pDC->SetBkColor(RGB(255,255,0)); }这是代码。 恐怕: SM_CYCAPTION Height, in pixels, of a normal caption area. 是个常数 WebBrowser 做 exe的界面,如何局部刷新?? 全屏状态下,如果显示一个弹出式对话框,就会退出全屏,怎么解决? 关于动态生成的菜单的消息响应问题,请教! 控制左右声道的问题求教 怎么设计这样一个variant数组,在函数中返回,在另一个函数中解析? dialog上如何设置光标在richedit里面 虚拟光驱是怎样做的? vc操作access问题 图像压缩,求指导!!! win7 x64注册表操作的问题 二百以内质数加和怎么编程V++ Edit嵌入对话框
LRESULT CMainFrame::DefWindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam)
{
if (nMsg==WM_NCPAINT)
{
OnNcPaint(); }
return CMainFrame::DefWindowProc(nMsg,wParam,lParam);
}
我也不懂这个代码,然后显示是堆栈溢出麻烦了。
void CMainFrame::OnNcPaint()
{
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CFrameWndEx::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 m_lf;
memset(&m_lf, 0, sizeof(LOGFONT)); // zero out structure
m_lf.lfHeight = 20;
m_lf.lfQuality=NONANTIALIASED_QUALITY;
_tcsncpy_s(m_lf.lfFaceName, LF_FACESIZE,_T("Times New Roman"), 20);
CFont capfont ;
capfont.CreateFontIndirect (&m_lf);
pCurFont = pDC->SelectObject (&capfont);
pDC->DrawText(L"My Caption" , &CapRct, DT_CENTER ); //最好定义一个m_strCaption类成员
pDC->SetBkColor(RGB(255,255,0));
}
这是代码。
是个常数