windows – 如何使CStatic控件(MFC)透明?
发布时间:2020-12-14 02:51:47 所属栏目:Windows 来源:网络整理
导读:我的应用程序有一个启动对话框,其中包含一个填充整个对话框的图像.另外还有一个CStatic控件,它为用户显示一些可变信息.我使用以下代码使CStatic控件透明: HBRUSH CStartbildDlg::OnCtlColor(CDC* pDC,CWnd* pWnd,UINT nCtlColor){ if(pWnd-GetDlgCtrlID() =
我的应用程序有一个启动对话框,其中包含一个填充整个对话框的图像.另外还有一个CStatic控件,它为用户显示一些可变信息.我使用以下代码使CStatic控件透明:
HBRUSH CStartbildDlg::OnCtlColor(CDC* pDC,CWnd* pWnd,UINT nCtlColor) { if(pWnd->GetDlgCtrlID() == IDC_STATIC_INFO) { pDC->SetBkMode(TRANSPARENT); return reinterpret_cast<HBRUSH>(::GetStockObject(NULL_BRUSH)); } else return CDialog::OnCtlColor(pDC,pWnd,nCtlColor); } 当我使用GetDlgItem(IDC_STATIC_INFO) – > SetWindowText更改静态控件的文本时,新文本与旧文本重叠(旧文本不会被删除).我试图用GetDlgItem(IDC_STATIC_BILD) – > Invalidate()调用SetWindowText图像重绘背景,但是没有显示信息文本(既不是旧的也不是新的). 你知道我如何使静态控件透明,所以我也可以用新文本覆盖它吗? 谢谢你的帮助! 解: GetDlgItem(IDC_STATIC_INFO)->SetWindowText(tmp); CRect rect; GetDlgItem(IDC_STATIC_INFO)->GetWindowRect(&rect); ScreenToClient(&rect); InvalidateRect(&rect); UpdateWindow(); 解决方法
您好,你可以找到透明静态样品
here
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-xp – 如何为Windows XP SP3 PC实现集群
- 为什么限制在我的WiX / MSI设置中使用自定义操作是个好主意
- 如何在WPF MVVM中调用窗口的Loaded事件?
- Windows上的Git提交(Cygwin)已损坏.
- Microsoft Office 2010 下载和自定义安装所需组件以及激活
- 如何将.dll导入Android java项目(使用eclipse)
- Windows中的PrivCopyFileExW错误?
- Win7 Eclipse 搭建spark java1.8环境:WordCount helloworl
- windows-server-2012-r2 – 在没有格式化的情况下在Windows
- 如何在windows xp上使用svn命令行?