c# 绘图设备和.net运行库的重绘节点

来源:互联网 发布:迈达斯待遇知乎 编辑:程序博客网 时间:2024/05/22 16:54

            c#有时候需要给tabcontrol特殊的处理和重绘,例如在tabpages标签页的标题上进行绘制等效果。

       

           c# 代码:

                   rectangle myrect=this.forms.gettabrect(e.index);

                   e.graphics.drawstring(this.form1.tabpages[e.index].text,this.font,systembrushes.Menutext,myTabRect.X+4,myTabRect.Y+4);

                   using (Pen p = new Pen(Color.White))
                  {
                    myTabRect.Offset(40,2);
                    myTabRect.Width = CLOSE_SIZE;
                    myTabRect.Height = CLOSE_SIZE;
                    e.Graphics.DrawRectangle(p, myTabRect);
                }

                   Color recColor = e.State == DrawItemState.Selected ? Color.Pink : Color.Wheat;
                using (Brush b = new SolidBrush(recColor))
                {
                    e.Graphics.FillRectangle(b, myTabRect);
                }

              c++代码:

                pBitmap->LoadBitmap(IDB_TOP);
pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
pBitmap->GetBitmap(&BmpInfo);
while(DrawPonit.x<= m_rtButtMin.left-66) 
{
pDC->BitBlt(DrawPonit.x, DrawPonit.y, BmpInfo.bmWidth, BmpInfo.bmHeight, pDisplayMemDC, 0, 0, SRCCOPY);
DrawPonit.x = DrawPonit.x + BmpInfo.bmWidth;
}
pDisplayMemDC->SelectObject(pOldBitmap);
pBitmap->DeleteObject();
pBitmap->LoadBitmap(IDB_TITLE_RIGHT);
pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
pBitmap->GetBitmap(&BmpInfo);
pDC->BitBlt(DrawPonit.x, DrawPonit.y, BmpInfo.bmWidth, BmpInfo.bmHeight, pDisplayMemDC, 0, 0, SRCCOPY);


pDisplayMemDC->SelectObject(pOldBitmap);
pBitmap->DeleteObject();

          

原创粉丝点击