直接画就行了。int oldMode=pDC->SetBkMode(TRANSPARENT);
pDC->TextOut(500,20,"nothing");
pDC->SetBkMode(oldMode);
pDC->TextOut(500,20,"nothing");
pDC->SetBkMode(oldMode);
解决方案 »
- vc6程序升级到vc2010
- VC编译问题!想不明白,高手赐教
- 函数调用问题(在线等,急)
- 关于引用Winsock2.H头文件的问题
- 端口大全~~~~
- 学习写全局钩子,想实现如下功能:截获WIN98下按ctrl+alt+del事件,列出当前所有进程,杀死指定进程,请指点,帮忙给个例程
- 如何在运行中用程序改变切分窗口的大小?
- socket编程菜鸟问题,做过socket的朋友都来看看
- C:\CAB&SIGN\CABARC -s 6144 webdvr.CAB webdvr.ocx webdvr.INF
- 自动注册数据源之后如何确定m_nFields 值的大小?
- ActiveX文档图形如何显示在容器中?
- 请问如何在vc中使用ActiveX控件操作SQL7.0中的数据,HELP?
1. 用我的方法要注意先画图,再画字。(如果重画图,则字也要重写)2. 用orbit的方法,要先写字(保证是白底),再用SRCAND参数把位图贴到内存DC上,再传出来。两段代码分别如下:
pDC->SetBkMode(OPAQUE);
pDC->StretchBlt(m_pt.x,m_pt.y,m_size.cx,m_size.cy,&m_dcMem,0,0,m_bmInfo.bmWidth-1,
m_bmInfo.bmHeight-1,SRCCOPY); //位图画出来
int oldMode=pDC->SetBkMode(TRANSPARENT);//OPAQUE
pDC->TextOut(50,20,"nothing");
pDC->SetBkMode(oldMode);
2. CDC memDC;
CBitmap *m_pBitmap,*oldBitmap;
memDC.CreateCompatibleDC(pDC);
m_pBitmap=new CBitmap;
m_pBitmap->CreateCompatibleBitmap(pDC,m_size.cx,m_size.cy);
CBrush whiteBrush(0X00ffffff);
oldBitmap=memDC.SelectObject(m_pBitmap);
CBrush *oldBrush=memDC.SelectObject(&whiteBrush);
memDC.PatBlt(0,0,m_size.cx,m_size.cy,PATCOPY); memDC.SetTextColor(0X000000); HFONT hOldFont=(HFONT__ *)memDC.SelectObject(hFont); memDC.TextOut(50,20,"nothing");
memDC.StretchBlt(m_pt.x,m_pt.y,m_size.cx,m_size.cy,&m_dcMem,0,0,m_bmInfo.bmWidth-1,
m_bmInfo.bmHeight-1,SRCAND);
pDC->BitBlt(m_pt.x,m_pt.y,m_size.cx,m_size.cy,&memDC,0,0,SRCCOPY); memDC.SelectObject(oldBitmap);
memDC.SelectObject(oldBrush);
memDC.SelectObject(hOldFont);
myFont.DeleteObject();
m_pBitmap->DeleteObject();
whiteBrush.DeleteObject();
CWnd::ReleaseDC(&memDC);
memDC.DeleteDC();看看哪种方法简单。
你的方法只能在普通的窗口中画,由于视频是不但自动刷新(overlay)方式,它好象没有验一个WM_PAINT消息,故不可能在OnPaint函数中打入字体,请问你是在那里放入这段代码的???
你的方法只能在普通的窗口中画,由于视频是不但自动刷新(overlay)方式,它好象没有验一个WM_PAINT消息,故不可能在OnPaint函数中打入字体,请问你是在那里放入这段代码的???