如何改变状态栏背景色?

johntang 2014-01-29 02:56:41
如何改变状态栏的背景色?

HWND hstatuswindow = CreateStatusWindow(WS_CHILD|WS_VISIBLE|WS_BORDER,
TEXT("Current:"),mymainwnd,MYIDS_STATUS);
int pint[4]={80,250,350,-1};//110,250,300设定间隔
::SendMessage(hstatuswindow,SB_SETPARTS,4,(LPARAM)pint);
::SendMessage(hstatuswindow,SB_SETTEXT,1,(LPARAM)TEXT("Name"));
::SendMessage(hstatuswindow,SB_SETTEXT,2,(LPARAM)TEXT("Size"));
::SendMessage(hstatuswindow,SB_SETTEXT,3,(LPARAM)TEXT("Path"));
...全文
206 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2014-03-01
  • 打赏
  • 举报
回复
子类化CStatusBar,添加处理WM_ERASEBKGND消息


BOOL CNewStatusBar::OnEraseBkgnd(CDC* pDC)
{
CRect rect;
	GetClientRect(&rect);
	pDC->FillSolidRect(rect, RGB(255, 0, 128));
	return TRUE;
}
向立天 2014-03-01
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
schlafenhamster 2014-01-31
  • 打赏
  • 举报
回复
pane0 自绘: void CMyStatusBar::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { // TODO: Add your message handler code here and/or call default CRect rc; GetClientRect(&rc); HBRUSH hbr=CreateSolidBrush(RGB(255,128,0)); FillRect(lpDrawItemStruct->hDC,&rc,hbr); DeleteObject(hbr); CString str; str=GetPaneText(0); SetBkMode(lpDrawItemStruct->hDC,TRANSPARENT); SetTextColor(lpDrawItemStruct->hDC,RGB(0,0,255)); ::TextOut(lpDrawItemStruct->hDC,6,6,str,str.GetLength()); // afxDump << lpDrawItemStruct->itemAction << "??\n"; return; // CStatusBar::DrawItem(lpDrawItemStruct); } 初始化 // ownerdraw pane0 m_wndStatusBar.SetPaneInfo(0, 0, SBT_OWNERDRAW, 160);
schlafenhamster 2014-01-30
  • 打赏
  • 举报
回复
需要 重绘 每个 pane

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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