首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

边框不见了,咋回事

2013-01-02 
边框不见了,怎么回事自定义函数drawitem, 用来自绘调用的。结果边框看不见了,边框是用Rectangle函数绘制voi

边框不见了,怎么回事
自定义函数drawitem, 用来自绘调用的。

结果边框看不见了,
边框是用Rectangle函数绘制



void DrawItem( DRAWITEMSTRUCT* item )
{
RECT rect;

if(!item)
return;


Rectangle(item->hDC, item->rcItem.left-1,item->rcItem.top-1,item->rcItem.top+1,item->rcItem.bottom+1);



SetBkMode(item->hDC,OPAQUE);
//内存dc法子

  HBITMAP hBitmap=LoadBitmap(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP1));

HDC hMemDC=CreateCompatibleDC(item->hDC);

HBITMAP hOldBitmap=(HBITMAP)SelectObject(hMemDC,(HGDIOBJ)hBitmap);

BITMAP bitmap;

GetObject(hBitmap,sizeof(BITMAP),&bitmap);

StretchBlt(item->hDC,0,0,item->rcItem.right,item->rcItem.bottom,hMemDC,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);


SelectObject(hMemDC,hOldBitmap);

DeleteObject((HGDIOBJ)hBitmap);

DeleteObject((HGDIOBJ)hMemDC);

//
//Rectangle(item->hDC, item->rcItem.left-1,item->rcItem.top-1,item->rcItem.top+1,item->rcItem.bottom+1);


  //  Set the text color to gray if the button is selected.
  if( item->itemState & ODS_SELECTED )
  {
    SetTextColor( item->hDC, RGB( 128, 128, 128 ) );//gray
  }
  else
  {
    SetTextColor( item->hDC, RGB( 255, 0, 0 ) );//red
  }

  
  //  This will make the text move down and to the right when the button is
  //  pressed.
  rect = item->rcItem;
  if( item->itemState & ODS_SELECTED )
  {
    rect.top  += 2;
    rect.left += 2;
  }

  char title[256];
  GetWindowText( item->hwndItem, title, sizeof( title ) );
  DrawText( item->hDC, title, -1, &rect,
      DT_CENTER | DT_VCENTER | DT_SINGLELINE );

 
}



[解决办法]
你把画边框的代码放到最后,否则可能被其它内容覆盖的。
[解决办法]
引用:
你把画边框的代码放到最后,否则可能被其它内容覆盖的。

++。
Rectangle别用这个函数,它有填充色。
用FrameRect
[解决办法]
是不是被你后面的图片给盖住了~

热点排行