你有QQ号吗,我在QQ里可以给你点建议!
解决方案 »
- 用MFC编写了一个编辑框(Edit) 在编辑框中输入时如何高亮显示关键字(如 int,float)。。。怎么编写代码
- udp 广播接收 bind 失败
- 如何在一个成员函数里调用另一个成员函数呢?
- 创建好一个ACCESS数据库如何把它变成使用的程序啊
- vc中设置断点的问题
- 请问MFC中简单问题
- 为什么我的Static不能将背景透明显示?
- 请问:一个数让它 连加 16次怎样编?谢谢
- 本人用CDC::BitBlt实现的图象滚动(when KEYDWON),一顿一顿的,太慢了,在GDI下,如何优化 ?要求达到Acdsee的程度,理论,代码都可,若真正有帮助,另加300分
- 在Jeffrey Richter的《Programming Applications for Microsoft Windows, Fourth Edition》中,书中的例子总是出错,还要手动去改,不知怎么回事啊?
- 在VC SDK中用什么函数得到当前程序的实例句柄?
- VC ERROR?为什莫ACTIVEX控件不能注册?activex控件可以调用本地dll吗??
一个HDC上画两次就可以了第一次描绘是画abc.bmp背景第二次 SetBkMode(hdc,TRANSPARENT);一下就可以在原来的背景图上写字。void Desktop()
{
HWND hDesk=::GetDesktopWindow(); //得到桌面窗口句柄
TCHAR str[60]="背景上的文字?需要变化再捎加处理";
HDC hdc = ::GetWindowDC(hDesk);
HFONT font= ::CreateFont(34, 24, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, FF_DECORATIVE, "黑体" );
SelectObject(hdc, font );
HBITMAP hbitmap;
HDC fromdc;
hbitmap=(HBITMAP)LoadImage(GetModuleHandle(NULL),"abc.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE |LR_CREATEDIBSECTION );
fromdc=CreateCompatibleDC(NULL);
SelectObject(fromdc,hbitmap);
StretchBlt(hdc,0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN),fromdc,0,0,520/*这个你自己确定*/,316,SRCCOPY); SetBkMode(hdc,TRANSPARENT);
SetTextColor(hdc,RGB(255,0,0));
TextOut(hdc,10,10,str,strlen(str));
DeleteObject(hbitmap);
DeleteDC(fromdc);
}
上面函数就全屏幕显示一个图片,在上面写上字了
道理就是这样。不需要两个层。
没必要一定要在桌面上画图(画桌面、、、好象是在捣乱、、、:)
你把桌面的HDC换成自己的窗口的HDC
可以自己Create一个windows,到时候把自己的窗口以及hdc销毁就可以了
http://www.csdn.net/expert/topic/96/96772.shtm