EVC 下面在CBitmap 控件中显示控件时不能显示出来..........

slyzhang 2005-03-18 09:57:54
void CGPSReceiverDlg::DrawTransparentBitmap(CDC *pDC, UINT IDImage,CRect &rect, COLORREF rgbMask)
{
CWnd *pWnd=GetDlgItem(IDC_STATEG_SATELLITE);
CDC *pControlDC=pWnd->GetDC();
CDC ImageDC,MaskDC;
CBitmap Image,*pOldImage;

Image.LoadBitmap(IDImage);
BITMAP mapInfo;
Image.GetBitmap(&mapInfo);
ImageDC.CreateCompatibleDC(pDC);
pOldImage=ImageDC.SelectObject(&Image);
pDC->StretchBlt(rect.left,rect.top,rect.Width(), rect.Height(), &ImageDC, 0, 0,mapInfo.bmWidth,mapInfo.bmHeight,SRCCOPY);
// pDC->BitBlt(rect.left,rect.top,rect.Width(), rect.Height(), &ImageDC, 0, 0,SRCCOPY);
ImageDC.SelectObject(pOldImage);
//UpdateWindow();
pWnd->Invalidate();
pWnd->UpdateWindow();
// ReleaseDC(hDrawWnd, hdc);
}

//------------------------
在OnInitDialog ()中调用
m_map.GetClientRect(re);
DrawTransparentBitmap(m_map.GetDC(),IDB_BITMAP2,re,RGB(0,0,0));
其中 m_map 为CStatic , 图片控件的名字.
//--------------------------]
问题是:
1 . 在VC下可以显示 ,测试过的. 在 EVC下不能显示.....界面一直为空,但又没有报错.....
2 . EVC下的界面到底是怎么处理的呢????
...全文
94 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
slyzhang 2005-03-18
  • 打赏
  • 举报
回复
没有办法...找个了捷径...直接在dialog的GetclientRect () 的就可以....郁闷...

就是不能放到 CStatic(CBitmap)中.........

我的思考: 听说过EVC下对Window 的层的处理不好......

大家又什么好建议 梯上来吧..... 上来的都给分.....
ppass 2005-03-18
  • 打赏
  • 举报
回复
我没看你的代码,但通过你1的描述,我想大概是这样的:

VC下的函数在EVC下有的不支持,
这样的函数一些在移植时编译就可发现
另一些函数表面编译时顺利通过,但实际上什么工作也不做.
你看EVC的 CDC类,就会发现很多这样的函数

所以我猜想你调用了可以编译通过但实际上不工作的函数.
发现它,找个替代函数即可.

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧