读书人

MFC重绘标题栏有关问题!标题栏已实现

发布时间: 2012-11-01 11:11:33 作者: rapoo

MFC重绘标题栏问题!标题栏已实现背景图片,但显示标题。和最大化最小化按钮
我已经实现了 标题栏上面加背景图片。。

但问题来了。。没有了标题 和图标。。还有最大最小化关闭按钮。。好像都覆盖了。。如何弄出来。。

或者自己手动增加按钮到上面去

我的代码


C/C++ code
//绘制标题栏void GameDlg::DrawTitleBar(CDC *pDC){    CDC memDC;    CBitmap bmp;    CRect rect, rtTitle;    CPoint point;    GetClientRect(rect);    //获取标题栏大小    rtTitle.left = GetSystemMetrics(SM_CXFRAME);    rtTitle.top  = GetSystemMetrics(SM_CYFRAME);    rtTitle.right = rect.right - rect.left - GetSystemMetrics(SM_CXFRAME) + 500;    rtTitle.bottom = rtTitle.top + GetSystemMetrics(SM_CYSIZE);    point.x = rect.right  + GetSystemMetrics(SM_CXFRAME);    point.y = 25;    memDC.CreateCompatibleDC(NULL);    bmp.CreateCompatibleBitmap(pDC,point.x,point.y);    CBitmap *pOldBit=memDC.SelectObject(&bmp);    //背景颜色    //memDC.FillSolidRect(0,0,point.x,point.y,RGB(0,0,255));    ////贴图    CBitmap pic;    pic.LoadBitmap(IDB_BITMAP2);    ShowBitmap(&memDC,0,0, rtTitle.right, 30, pic);    pDC->BitBlt(0,0,point.x,point.y,&memDC,0,0,SRCCOPY);        pOldBit->DeleteObject();    memDC.DeleteDC();    bmp.DeleteObject();    }//绘制标题图片void GameDlg::ShowBitmap(CDC *pDC, int x, int y, int nW, int nH, CBitmap &m_bitmap){    CDC memDc, mdc;    memDc.CreateCompatibleDC(NULL);    mdc.CreateCompatibleDC(NULL);    CBitmap memBitmap;    memBitmap.CreateCompatibleBitmap(pDC,nW,nH);    CBitmap *OldBmp = memDc.SelectObject(&m_bitmap);    mdc.SelectObject(&m_bitmap);    memDc.BitBlt(x,y,nW,nH,&mdc,0,0,SRCCOPY);    BITMAP bm;    m_bitmap.GetBitmap( &bm );    //贴图    //pDC->BitBlt(x, y,    // x + bm.bmWidth,y + bm.bmHeight,    // &MemDc,     // 0, 0,     // SRCCOPY);    //拉伸    pDC->StretchBlt(x,y, nW, nH ,&memDc,0,0,        bm.bmWidth,bm.bmHeight,SRCCOPY);    memDc.SelectObject(OldBmp);    memDc.DeleteDC();}void GameDlg::OnNcPaint(){    // TODO: 在此处添加消息处理程序代码    // 不为绘图消息调用 CDialog::OnNcPaint()    // CDialog::OnNcPaint();}


[解决办法]
现在在上班啊,回去发你例子。晚上发你

读书人网 >VC/MFC

热点推荐