这是基于CTabctrl代码:
void CTabWnd::OnPaint()
{
CPaintDC dc( this ); CRect rc; dc.GetClipBox( &rc ); dc.FillSolidRect( &rc , RGB( 238 , 239 , 239 ) ); CTabCtrl::DefWindowProc( WM_PAINT ,( WPARAM )dc.GetSafeHdc( ) , 0 );
}
如何把它改成图片背景显示?谢谢!!
void CTabWnd::OnPaint()
{
CPaintDC dc( this ); CRect rc; dc.GetClipBox( &rc ); dc.FillSolidRect( &rc , RGB( 238 , 239 , 239 ) ); CTabCtrl::DefWindowProc( WM_PAINT ,( WPARAM )dc.GetSafeHdc( ) , 0 );
}
如何把它改成图片背景显示?谢谢!!
解决方案 »
- ftp线程编程问题
- 不编写网络程序,MTS还用学吗?
- 父窗口如何创建子窗口?
- #请教在线自动更新系统!
- 请教:如何在一个list中,把某一subitem变成一个combobox,通过选择来设置该subitem的内容
- 关于文件的存取的问题
- 【急】如何收到Surface、Lenovo yoga平板模式和pc模式切换通知
- dcom中如何实现文件传输?
- 怎么办?我想在CFileDialog的组合框选项变化时获取它的选项...大虾求助!
- MSDN的工具里有一个spy++,可以监视其他程序的消息,只需用鼠标选中其窗口就行了,在程序中如何实现?具体的细节在msdn中的什么地方?
- a strange problem
- 有谁用C++建过论坛的吗?
CBitmap bitmap;
CBitmap *pOldBitmap;
CDC dcMem;
BITMAP bmpInfo;GetClientRect(&rcClient);
dcMem.CreateCompatibleDC(pDC);
bitmap.LoadBitmap(IDB_BITMAP1);
pOldBitmap = dcMem.SelectObject(&bitmap);
bitmap.GetBitmap(&bmpInfo);
pDC->BitBlt(rcClient.left, rcClient.top, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMem, 0, 0, SRCCOPY);
dcMem.SelectObject(pOldBitmap);VERIFY(dcMem.DeleteDC());
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CDialog::OnPaint()
CBitmap m_bmpBackground;
m_bmpBackground.LoadBitmap(位图ID);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc); //创建与对话框dc兼容的内存dc
CRect rect;
GetClientRect(&rect);
BITMAP bitMap;
m_bmpBackground.GetBitmap(&bitMap);
CBitmap *pbmpOld=dcMem.SelectObject(&m_bmpBackground); //将背景位图选入内存dc中
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);
//dc.BitBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);
dc.SelectObject(pbmpOld);
void CTabWnd::DrawItem( LPDRAWITEMSTRUCT lpDS )
{
CDC dc; dc.Attach( lpDS->hDC ); char buf[255]; TCITEM item; item.mask = TCIF_TEXT; item.pszText = buf; item.cchTextMax = sizeof( buf ); this->GetItem( lpDS->itemID , &item ); dc.SetBkMode( TRANSPARENT ); dc.SetTextColor( RGB( 28 , 98 , 140 ) ); CRect rc( lpDS->rcItem ); if( lpDS->itemID == this->GetCurSel( ) )
{
dc.FillSolidRect( &rc , RGB( 220 , 238 , 251 ) ); rc.OffsetRect( 1 , 3 );
} dc.DrawText( buf , &rc , DT_CENTER ); dc.Detach( );
}