MFC ActiveX控件 怎么才能其能够覆盖其他控件,比如按纽之类的

xixuanfong 2012-01-05 10:35:39
我做了一个ActiveX控件,在oncreate里面创建了一个CStatic控件:
CRect rectBounds;
this->GetClientRect(rectBounds);

m_pEssImVideoPanel = new CStatic();
m_pEssImVideoPanel->Create(_T(""), WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, rectBounds, this, IDC_STC_VIDEO);

在OnDraw里处理代码:
CBrush brush(TranslateColor(GetBackColor()));
pdc->FillRect(rcBounds, &brush);
pdc->SetTextColor(TranslateColor(GetForeColor()));
pdc->SetBkMode(OPAQUE);

if (m_pEssImVideoPanel && m_pEssImVideoPanel->m_hWnd)
{
m_pEssImVideoPanel->MoveWindow(rcBounds);
}

在OnCtlColor里处理代码:
HBRUSH hbr = COleControl::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here

// TODO: Return a different brush if the default is not desired
if(pWnd->GetDlgCtrlID() == IDC_STC_VIDEO)
{
CBrush brush(TranslateColor(GetBackColor()));
CRect rect;
pWnd->GetClientRect(&rect);
pDC->FillRect(rect, &brush);
pDC->SetBkMode(OPAQUE);
hbr = (HBRUSH)::GetStockObject(NULL_BRUSH); // 注意最后这个hbr返回
}

return hbr;
背景颜色是可以设置了,但是在窗体里面插入该控件,怎么使它能够覆盖其他控件,背景怎么看起来是透明的呢

小弟刚接触ActiveX控件,望各位大虾赐教啊
...全文
243 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xixuanfong 2012-01-05
  • 打赏
  • 举报
回复
可是我在控件上面Create了CStatic静态控件了啊
fishion 2012-01-05
  • 打赏
  • 举报
回复
简单的用一个设置成半透明的对话框Create在控件上面
xengine-qyt 2012-01-05
  • 打赏
  • 举报
回复
覆盖其他控件不是你能做的哦,你要做的话只有轮训父窗口设置其他窗口属性 太麻烦了

ACTIVE 和其他窗口一样 该怎么透明就怎么透明!
xixuanfong 2012-01-05
  • 打赏
  • 举报
回复
有人吗,急啊
xixuanfong 2012-01-05
  • 打赏
  • 举报
回复
谢谢各位热情解答,结帖散分
youngwolf 2012-01-05
  • 打赏
  • 举报
回复
你自己的控件上放一个static干什么(当然有需要,放一个也是可以的,不影响你的问题的结果)?

当两个窗口,其中一个被另一个挡住的时候,你怎么办,方法有二:
一、把上面的窗口移开;
二、把下面的窗口放到最上面来;

一个容器(比如你的对话框)里面的子窗口(或者说控件),是有tab顺序的,顺序越靠后,越绘制在最上层(或者反之,我记不住了,我没做界面已经很多年)。
那么如何调整tab顺序呢,你可以google一下,vc6的话,我记得是ctrl+d;
如果你对rc文件熟悉,可以用记事本打开rc文件,里面控件的顺序就是tab顺序,把你的控件放到最后(如果不熟悉还是别乱动,可能造成ide崩溃)。
xixuanfong 2012-01-05
  • 打赏
  • 举报
回复
To fishion:
你可能没仔细看我的帖子哦,我现在不想要透明效果,比如我在窗体上拉一个ActiveX控件,再拉一些按钮文本框之类的自带控件,这些自带控件总是显示在我自定义的ActiveX控件之上,看起来像是透明的,但具体是不是透明的,还是说ActiveX控件是置底的,其他自带控件都显示在它之上

fishion 2012-01-05
  • 打赏
  • 举报
回复
可以设置透明的静态文件控件
http://topic.csdn.net/t/20030218/19/1441059.html

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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