问题是这样的:
我在对话框上用DC输出文本,使用了双缓冲,关键原理过程如下:1. 在OnCtlColor中
HBRUSH CMiniMonitorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if (CTLCOLOR_DLG == nCtlColor)
return ((HBRUSH)GetStockObject(HOLLOW_BRUSH));
return hbr;
}2. 在输出涵数中
I)在内存DC中创建了位图
II)再位图上调用DrawText输出
III)在对话框的DC上调用了TransparentBlt来拷贝位图(其中把背景色设为透明色以达到透明效果)这样做后问题是: 背景始终是初始显示时对话框后面的景色,调用Invalidate也无效,
我有个特不明白的地方是"对话框后面的景色"是没在在对话框的DC上输出的,为什么窗口始终显示这部分图像呢?
这个问题怎么解决?
谢谢!!!
我在对话框上用DC输出文本,使用了双缓冲,关键原理过程如下:1. 在OnCtlColor中
HBRUSH CMiniMonitorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if (CTLCOLOR_DLG == nCtlColor)
return ((HBRUSH)GetStockObject(HOLLOW_BRUSH));
return hbr;
}2. 在输出涵数中
I)在内存DC中创建了位图
II)再位图上调用DrawText输出
III)在对话框的DC上调用了TransparentBlt来拷贝位图(其中把背景色设为透明色以达到透明效果)这样做后问题是: 背景始终是初始显示时对话框后面的景色,调用Invalidate也无效,
我有个特不明白的地方是"对话框后面的景色"是没在在对话框的DC上输出的,为什么窗口始终显示这部分图像呢?
这个问题怎么解决?
谢谢!!!
解决方案 »
- 用MSComm控件做串口通信波特率都有哪些是合法的呢
- 错误: 未能完成操作。不支持此接口(VS2005/扩展性/共享的外接程序/MyAddin1/MyAddin1Setup)
- 在一个应用程序中如何截获其他应用程序MESSAGEBOX发过来的消息?
- int* &a;是什么语句啊?不懂意思,请指教!
- 参数邦定的bug
- 为什么域名大多数能够解析为IP,而IP很少能够被反解析成域名
- 《VC++6.0数据库编程大全》配套光盘源码
- 包和类的问题
- 用MFC如何获得局域网中服务器的时间?
- 我用WriteFile 寫串口時總說:據丙無效或參數不 對,不知道爲什麽 ?高分正送!
- (急急急)怎样用VC实现上传文件到服务器 谢谢各位大哥大姐们啦(100)
- C/C++单元测试工具Visual Unit新手入门
在onpaint里加上透明背景输出 也是不行的,如果不是透明的话就没问题,但现在是上一次的输出以及初始时的背景都没擦掉,
不知道要怎么才能擦掉的?