我最近在做一个项目,在xp下用vc6,而用户又对界面做了一定的要求,真是愁死我了!我现在的做法是在对话框上用图片框分成若干个小块,每一块的颜色不同,图片框上面有2个静态文本框和1个edit。我现在的麻烦就是,无法让显示的文字外边的框去掉,不能针对图片框透明显示。顺便说一下,pDC->SetBkMode(TRANSPARENT);对对话框好用,可是对图片框就不好用了,期待高手指点。
解决方案 »
- 如和在内存中查找指定的字符串
- 非模态对话框数据设置为什么就出不来呢?
- 多线程问题,很复杂
- 向达人请教如何保存所画图像以能使下位机识别,急!!!
- 大家看一下,为什么按W,U键,为什么我VK_F8,VK_F6会有反映
- 初学sdk:对话框的问题
- 如何实现该效果:程序一开始就全屏显示,然后根据鼠标位置决定是否显示工具栏
- ★★★如何在COM中修改以CAxDialogImpl继承的对话框中的List Control风格?【来者有分】★★★
- 关于管道的问题 小弟请教!!!!!
- 求助:各位大哥,把下面几句 delphi 代码转换为 C++ 的,好吗?谢谢!
- 如何通过添加字符串ID获得命令ID作为窗格的ID
- 关于OUTPUT file name
HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
switch (nCtlColor)
{
case CTLCOLOR_EDIT:
{
CBrush brush;
pDC->SetBkMode(TRANSPARENT);
brush.CreateStockObject(NULL_BRUSH);
return brush;
}
}
return hbr;
}
在OnCtlColor中HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
switch (nCtlColor)
{
case CTLCOLOR_STATIC:
{
CBrush brush;
pDC->SetBkMode(TRANSPARENT);
brush.CreateStockObject(NULL_BRUSH);
return brush;
}
}
return hbr;
}
如果只想把其中一个标签设为透明,可以在OnCtlColor中再用pWnd来判断。
HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if (nCtlColor == CTLCOLOR_STATIC)
{
CBrush brush;
pDC->SetBkMode(TRANSPARENT);
brush.CreateStockObject(NULL_BRUSH);
return brush;
}
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
明天是小年,大家过年好!