在状态栏绘制进度条
发布时间:2018年1月21日 作者:sieye 查看次数:1029
代码: HWND hStatusWnd; void mStatusProgress(HWND pStWnd,int pLn,int pColor); ...... hStatusWnd=CreateStatusWindow(WS_CHILD | WS_VISIBLE,NULL,hWnd,200); //建立状态栏 int tStPart[3]; tStPart[0]=200; tStPart[1]=350; tStPart[2]=-1; SendMessage(hStatusWnd,SB_SETPARTS,3,(long)&tStPart); //分割状态栏 ...... //在状态栏绘制进度条 //参数:pStWnd状态栏句柄,pLn绘制长度,pColor绘制颜色 void mStatusProgress(HWND pStWnd,int pLn,int pColor) { HDC hdc; HBRUSH hBBrush,hOldBrush; HPEN hPen,hOldPen; RECT rt; ::GetWindowRect(pStWnd,&rt); hdc=::GetDC(pStWnd); hBBrush=::CreateSolidBrush(pColor); //创建一个画刷 hOldBrush=(HBRUSH)::SelectObject(hdc,hBBrush); hPen=(HPEN)::CreatePen(PS_NULL,1,RGB(255,0,0)); //创建一个空画笔(消除边框) hOldPen=(HPEN)::SelectObject(hdc,hPen); ::Rectangle(hdc,0,2,pLn,rt.bottom-rt.top-2); //绘制长方形(进度) ::SelectObject(hdc,hOldBrush); ::DeleteObject(hBBrush); ::SelectObject(hdc,hOldPen); ::DeleteObject(hPen); ::ReleaseDC(pStWnd,hdc); }
|
|
|