html中给ocx属性赋值?

JustTech-HZ 2012-12-03 02:20:57
想要实现的功能: 给ocx添加一个自定义属性StartScreen,通过

<OBJECT ID="ocx" style="LEFT: 0px; TOP: 0px;" width="100%" height="100%"
CLASSID="CLSID:87920FCC-D541-4C57-B42A-712421A7F27D"
codebase="C:\WINDOWS\system32\VMC_OCX.ocx">
<PARAM NAME = "StartScreen" VALUE = "history">
</OBJECT>

给属性赋值,以确定OCX初始化时加载哪个界面(这个ocx有多个对话框界面:实时视频,录像回放...)

现在出现这么个问题:
如果不加<PARAM NAME = "StartScreen" VALUE = "history">
那么初始化ok
如果加了这句初始化会有如下现象:





就是页面上,最右边的按键会一下子全部消失,然后再出现。


请问这个是什么原因?
...全文
212 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
JustTech-HZ 2012-12-13
  • 打赏
  • 举报
回复
引用 3 楼 fishion 的回复:
应该是界面要重新布局了,你应该想下如何解决不让那两个消息框出来
解决了 添加属性x 在web中加载时 以x的值来区别加载的界面
fishion 2012-12-12
  • 打赏
  • 举报
回复
应该是界面要重新布局了,你应该想下如何解决不让那两个消息框出来
JustTech-HZ 2012-12-03
  • 打赏
  • 举报
回复
顶!! 急急急!
JustTech-HZ 2012-12-03
  • 打赏
  • 举报
回复
步骤:
1,添加属性

2,在OnCreate和OnDraw中判断:
int CVMC_OCXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
if(m_StartScreen == "")
{
//AfxMessageBox("NULL");
m_VMCDlg.Create(IDD_MAINDLG,this);
m_VMCDlg.ShowWindow(SW_SHOW);
}
else if (m_StartScreen == "patrol")//如果html中指定属性值为patrol 则加载此对话框
{
//AfxMessageBox("patrol");
m_VMCDlg.Create(IDD_MAINDLG,this);
m_VMCDlg.ShowWindow(SW_SHOW);
}
else if(m_StartScreen == "history")//如果html中指定属性值为history则加载此对话框

{
//AfxMessageBox("history");
m_ViewuserDlg.Create(IDD_US_USER,this);
m_ViewuserDlg.ShowWindow(SW_SHOW);
}

return 0;
}


void CVMC_OCXCtrl::OnDraw(
CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
if (!pdc)
return;

// TODO: Replace the following code with your own drawing code.

if(m_StartScreen == "")
{
m_VMCDlg.MoveWindow(rcBounds,TRUE);
}
else if (m_StartScreen == "patrol")
{
m_VMCDlg.MoveWindow(rcBounds,TRUE);
}
else if(m_StartScreen == "history")
{
m_ViewuserDlg.MoveWindow(rcBounds,TRUE);
}
}


3,变量持久化??:
void CVMC_OCXCtrl::DoPropExchange(CPropExchange* pPX)
{
ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
COleControl::DoPropExchange(pPX);

if (pPX->GetVersion() == (DWORD)MAKELONG(_wVerMinor, _wVerMajor))
{
PX_String(pPX,_T("StartScreen"),m_StartScreen);
}

// TODO: Call PX_ functions for each persistent custom property.
}


4:html中应用:
   
<OBJECT ID="ocx" style="LEFT: 0px; TOP: 0px;" width="100%" height="100%" CLASSID="CLSID:87920FCC-D541-4C57-B42A-712421A7F27D"
codebase="C:\WINDOWS\system32\VMC_OCX.ocx">
<PARAM NAME = "mystarttype" VALUE = "history">
</OBJECT>


不知道以上操作是否正确
过程中未报其他错误,就是页面会消失一下!

3,245

社区成员

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

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