两个小问题!

maxx 2004-07-08 08:05:33
1,我在DIALOG上放了STATIC控件,我想让它背景是透明的,字是黄的 于是
我重载 OnCtlColor这个函数
HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor==CTLCOLOR_STATIC )
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(255,255,0));
}
return hbr;
}
这样字是黄的了,可是背景还是 灰的???

2。我使 SetMenuItemBitmaps 这个函数在菜单上家个小位图,可是程序执行到那就弹出个dialog说有错,我想问问他 的第一个参数,应该是什么才正确啊???

...全文
107 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
syy64 2004-07-09
  • 打赏
  • 举报
回复
用CWinApp::SetDialogBkColor 函数。
半宫佳丽 2004-07-09
  • 打赏
  • 举报
回复
|~WS_BORDER看看
maxx 2004-07-09
  • 打赏
  • 举报
回复
sohou(大秦之刃)
第一个问题我看了你说的那个帖子
CWnd* pWnd = new CStatic;
pWnd->CreateEx(NULL, // Make a client edge label.
_T("STATIC"), "Hi",
WS_CHILD | WS_TABSTOP | WS_VISIBLE | WS_EX_TRANSPARENT, //就是这个啦
5, 5, 30, 30, m_hWnd, (HMENU)1234);
我在nflag上又加了WS_EX_TOPMOST背景就成透明的了,不过控件能看出有个边,怎摸去掉???

第二个问题我试了不行,第一个参数不是HMENU,我试了好多别的,都不行,都快疯了,帮忙啊!

sohou 2004-07-08
  • 打赏
  • 举报
回复
第二个问题解答如下,你必须给一个HMENU,代码如下:
CMenu mnu;
HMENU hmnu = AfxGetMainWnd()->GetMenu()->GetSafeHmenu();

sohou 2004-07-08
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3144/3144481.xml?temp=.6173059
自己看看吧
zPerry 2004-07-08
  • 打赏
  • 举报
回复
1. 感觉应该重写 OnEraserBkgnd 了,在那里面甚么都不干就行(基类也不调用)。在 OnCtlColor 可以设置 Brush 把背景变成其它颜色,但好像不能透明。

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧