查看: 1569|回复: 0
打印 上一主题 下一主题

win32与winCE下MFC背景贴图、静态文字背景透明

[复制链接]
跳转到指定楼层
沙发
发表于 2015-3-21 17:04:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

win32上可以重载OnCtlColor,字体背景透明:


  • if(nCtlColor == CTLCOLOR_STATIC)  
  • {  
  •     pDC->SetBkMode(TRANSPARENT);     
  •     return   (HBRUSH)::GetStockObject(NULL_BRUSH);     
  • }  


CE下无效,只好放弃删掉控件,在onpaint中写,

在CE下,没有textout这个函数,可以用ExtTextOut。


  • void CNaviUpdateToolsDialog::OnPaint()  

  • {  
  • #if defined WINCE  
  • #else  
  •     OutputDebugStringA("onpaint");  
  • #endif  
  •     CPaintDC dc(this); // device context for painting  
  •     CRect rect;  
  •     GetClientRect(&rect);  
  •     CDC dcMem;   
  •     dcMem.CreateCompatibleDC(&dc);  

  • <span style="white-space:pre">    </span>CBitmap m_bmpBackground;  
  •     m_bmpBackground.LoadBitmap(IDB_BACK);  
  •     BITMAP bitmap;  
  •     m_bmpBackground.GetBitmap(&bitmap);  
  •     CBitmap *pbmpOld=dcMem.SelectObject(&m_bmpBackground);  
  •     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.SetBkMode(TRANSPARENT);  
  •     CFont font;  
  •     font.CreatePointFont(150,L"微软雅黑",&dc);  
  •     dc.SelectObject(&font);  
  •     dc.ExtTextOut(350,150,0,&rect,"wenzi",NULL);  
  •     dc.ExtTextOut(350,180,0,&rect,"wenzi",NULL);  
  • }  


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表