如何改变单文档的标题颜色? 如何改变单文档的标题颜色? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在OnNcPaint 中调用 drawtext记住DC要用 CWindowDC。 哈哈...进步慢哦,都已经用四年了,OnNcPaint 没有哦? OnNcPaint 就是 WM_NCPAINT 的消息响应函数。你响应一下WM_NCPAINT 。在消息响应函数里面画标题的颜色就行了。 WM_NCPAINT 手动添加?我是在CMainFrame哦,没有看到WM_NCPAINT阿 void CMainFrame::DrawTitleBar(CDC *pDC){ if (m_hWnd) { CBrush Brush(RGB(0,0,0)); CBrush* pOldBrush = pDC->SelectObject(&Brush); CRect rtWnd, rtTitle, rtButtons; GetWindowRect(&rtWnd); CPoint point; //填充顶部框架 point.x = rtWnd.Width(); point.y = GetSystemMetrics(SM_CYSIZE) + GetSystemMetrics(SM_CYFRAME)+1; pDC->PatBlt(0, 0, point.x, point.y, PATCOPY); //填充左侧框架 point.x = GetSystemMetrics(SM_CXFRAME); point.y = rtWnd.Height(); pDC->PatBlt(0, 0, point.x, point.y, PATCOPY); }}//消息响应LRESULT CMainFrame::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) { LRESULT lrst=CFrameWnd::DefWindowProc(message, wParam, lParam); if (!::IsWindow(m_hWnd)) return lrst; if (message == WM_MOVE || message == WM_NCPAINT ||message == WM_NCACTIVATE ||message == WM_NOTIFY) { CDC* pWinDC = GetWindowDC(); if (pWinDC) DrawTitleBar(pWinDC); ReleaseDC(pWinDC); } return lrst;}成功,并分享 :-) 位图透明与半透明组合显示(TransParentBlt与AlphaBlend) 再向大家请教bmp 24位转16位 不失真问题 请帮我看看哪里有错误!谢谢! 用鼠标在直线上选中一点后拖动该直线, 请问怎样实现? 关于CEditView写字符串时,总是先闪回到第一行,在回到字符串末,然后才写入新的字符串。请看我的代码-》 请问:单文档怎样实现大小图标、列表、详细资料的查看? 对话框中的SendMessage和MessageBox的超基本问题 关于winpcap的一个问题,请指教! 给点建议 50分:发送arp包的问题 关于互斥量的使用,帮我看看程序的输出结果! 如何安全结束一个线程
哈哈...进步慢哦,都已经用四年了,OnNcPaint 没有哦?
void CMainFrame::DrawTitleBar(CDC *pDC)
{
if (m_hWnd)
{
CBrush Brush(RGB(0,0,0));
CBrush* pOldBrush = pDC->SelectObject(&Brush); CRect rtWnd, rtTitle, rtButtons;
GetWindowRect(&rtWnd);
CPoint point;
//填充顶部框架
point.x = rtWnd.Width();
point.y = GetSystemMetrics(SM_CYSIZE) + GetSystemMetrics(SM_CYFRAME)+1;
pDC->PatBlt(0, 0, point.x, point.y, PATCOPY);
//填充左侧框架
point.x = GetSystemMetrics(SM_CXFRAME);
point.y = rtWnd.Height();
pDC->PatBlt(0, 0, point.x, point.y, PATCOPY);
}
}//消息响应
LRESULT CMainFrame::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
LRESULT lrst=CFrameWnd::DefWindowProc(message, wParam, lParam);
if (!::IsWindow(m_hWnd))
return lrst;
if (message == WM_MOVE || message == WM_NCPAINT ||message == WM_NCACTIVATE ||message == WM_NOTIFY)
{
CDC* pWinDC = GetWindowDC();
if (pWinDC)
DrawTitleBar(pWinDC);
ReleaseDC(pWinDC);
}
return lrst;
}成功,并分享 :-)