如何给每个分割的窗口加标题栏? SDI,分成了几个窗口,定义成了formview,想让分割的窗口带上标题栏,该怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在试图类中ModifyStyle(0, WS_CAPTION); 在OnCreateClient中添加:((CForm**View*)m_wndSplitter.GetPane(0,0))->ModifyStyle(NULL,WS_CAPTION,0);当效果不是很好,我觉得楼主要实现这个功能最好还是自绘窗口。楼主请参考:http://www.vckbase.com/document/viewdoc/?id=317 这样就智能用CFormView了,建议自己绘制一个假的标题栏。void CMyView::OnPaint(){ CPaintDC dc(this); // device context for painting // TODO: 在此处添加消息处理程序代码 // 不为绘图消息调用 CView::OnPaint() CRect rect; GetClientRect(&rect); dc.FillSolidRect(0, 0, rect.Width(), 20, RGB(192, 192, 192)); // 可以贴图等 dc.Draw3dRect(0, 0, rect.Width(), 20, RGB(255, 255, 255), RGB(51, 51, 51)); dc.SetBkMode(TRANSPARENT); dc.DrawText(_T("Caption"), rect, DT_SINGLELINE); // "Caption"可以作为一个变量 …… ……} http://www.codeproject.com/KB/library/guitoolkit.aspx试试这个库, 编译时需要xp sdk支持看CGuiAccess这个工程,里面实现了给Splitter加标题bar 或者看看这个,更简单A Flat Splitter Windowhttp://www.codeproject.com/KB/splitter/flatsplitter.aspx 和我的类似,他这也是自己绘制的标题栏void CRightView::OnDraw(CDC* pDC){ CRect rect,rcClient; GetClientRect(rcClient); COLORREF crLight = GetSysColor(COLOR_BTNHIGHLIGHT); COLORREF crShadow = GetSysColor(COLOR_BTNSHADOW); COLORREF crFrame = GetSysColor(COLOR_WINDOWFRAME); COLORREF crBtnFace = GetSysColor(COLOR_BTNFACE); pDC->SetBkMode(TRANSPARENT); CGdiObject *pOldFont = pDC->SelectStockObject(ANSI_VAR_FONT); rect = rcClient; // title rect rect.bottom = rect.top + 22; pDC->FillSolidRect(rect,crBtnFace); pDC->Draw3dRect(rect,crLight,crShadow); pDC->DrawText(" Text Editor:",rect,DT_SINGLELINE|DT_VCENTER); // rect that makes the edit control look even more sunken (windoze default) rect.top = rect.bottom; rect.bottom = rcClient.bottom; pDC->Draw3dRect(rect,crFrame,crBtnFace); pDC->SelectObject(pOldFont);} 关于字体的缩放! 当对话框失去焦点时,如何让对话框自动关闭 关于退出对话框的问题 谁要是解决了,分贴给分,保证给尽我所有可用分!!!!! 用Web控件写了个类似IE浏览器程序。当页面上弹出新IE窗口时,有时弹出操作无法完成 请问那里有html和php4的电子教程 100分,,VC7.0在XP下MFC写的WINSOCK程序,怎么拿到别的机器上运行? 怎么修改对话框上方的标题和图标???? 如何调整弹出窗口的位置?(或许很可笑,可是我真的不知道) CFile 和fstream的问题 ocx控件中的函数,如何输出BSTR *str参数的值 图片处理程序开发
((CForm**View*)m_wndSplitter.GetPane(0,0))->ModifyStyle(NULL,WS_CAPTION,0);
当效果不是很好,
我觉得楼主要实现这个功能最好还是自绘窗口。
楼主请参考:http://www.vckbase.com/document/viewdoc/?id=317
这样就智能用CFormView了,建议自己绘制一个假的标题栏。
void CMyView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CView::OnPaint()
CRect rect;
GetClientRect(&rect);
dc.FillSolidRect(0, 0, rect.Width(), 20, RGB(192, 192, 192)); // 可以贴图等
dc.Draw3dRect(0, 0, rect.Width(), 20, RGB(255, 255, 255), RGB(51, 51, 51));
dc.SetBkMode(TRANSPARENT);
dc.DrawText(_T("Caption"), rect, DT_SINGLELINE); // "Caption"可以作为一个变量
……
……}
和我的类似,他这也是自己绘制的标题栏
void CRightView::OnDraw(CDC* pDC)
{
CRect rect,rcClient;
GetClientRect(rcClient); COLORREF crLight = GetSysColor(COLOR_BTNHIGHLIGHT);
COLORREF crShadow = GetSysColor(COLOR_BTNSHADOW);
COLORREF crFrame = GetSysColor(COLOR_WINDOWFRAME);
COLORREF crBtnFace = GetSysColor(COLOR_BTNFACE); pDC->SetBkMode(TRANSPARENT);
CGdiObject *pOldFont = pDC->SelectStockObject(ANSI_VAR_FONT); rect = rcClient; // title rect
rect.bottom = rect.top + 22;
pDC->FillSolidRect(rect,crBtnFace);
pDC->Draw3dRect(rect,crLight,crShadow);
pDC->DrawText(" Text Editor:",rect,DT_SINGLELINE|DT_VCENTER); // rect that makes the edit control look even more sunken (windoze default)
rect.top = rect.bottom;
rect.bottom = rcClient.bottom;
pDC->Draw3dRect(rect,crFrame,crBtnFace); pDC->SelectObject(pOldFont);
}