我用mfc开发一个控件,然后在Asp中调用,调用代码如下:
<object classid="clsid:DEA5C484-CD8B-4033-8031-92FE99938E2E" id="VideoMedia1" width="601" height="202">
<param name="_Version" value="65536">
<param name="_ExtentX" value="15901">
<param name="_ExtentY" value="5345">
<param name="_StockProps" value="0">
<%
if not RS.eof Then
UserIP=RS("VServerMultiCastIP")
StrPort=RS("VServerMultiCastPort")
%>
<param name="PlayIP" value="<%=UserIP%>">
<param name="PlayPort" value="<%=StrPort%>">
<param name="State" value="0">
<% else %>
<param name="PlayIP" value="10.9.2.1">
<param name="PlayPort" value="57001">
<param name="State" value="1">
<% End if
RS.Close
MyConn.Close
%>
</object> 其中的PlayIP、PlayPort、state参数是随着调用页面来改变的,同时我在组件程序中给这些参数赋了初值:
void CVideoMediaCtrl::DoPropExchange(CPropExchange* pPX)
{
ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
COleControl::DoPropExchange(pPX); // TODO: Call PX_ functions for each persistent custom property.
PX_String(pPX,"PlayIP",m_playIP,"10.9.2.205");
PX_Long(pPX,"PlayPort",m_playPort,57001);
PX_Bool(pPX,"State",m_state,TRUE);
}
然后我在OnDraw函数中用到这些PlayIP、PlayPort、State,但是我发现这些值在OnDraw函数中还是原来的初值,也就是说并没有通过上面的网页把参数传进来,这是为什么?
<object classid="clsid:DEA5C484-CD8B-4033-8031-92FE99938E2E" id="VideoMedia1" width="601" height="202">
<param name="_Version" value="65536">
<param name="_ExtentX" value="15901">
<param name="_ExtentY" value="5345">
<param name="_StockProps" value="0">
<%
if not RS.eof Then
UserIP=RS("VServerMultiCastIP")
StrPort=RS("VServerMultiCastPort")
%>
<param name="PlayIP" value="<%=UserIP%>">
<param name="PlayPort" value="<%=StrPort%>">
<param name="State" value="0">
<% else %>
<param name="PlayIP" value="10.9.2.1">
<param name="PlayPort" value="57001">
<param name="State" value="1">
<% End if
RS.Close
MyConn.Close
%>
</object> 其中的PlayIP、PlayPort、state参数是随着调用页面来改变的,同时我在组件程序中给这些参数赋了初值:
void CVideoMediaCtrl::DoPropExchange(CPropExchange* pPX)
{
ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
COleControl::DoPropExchange(pPX); // TODO: Call PX_ functions for each persistent custom property.
PX_String(pPX,"PlayIP",m_playIP,"10.9.2.205");
PX_Long(pPX,"PlayPort",m_playPort,57001);
PX_Bool(pPX,"State",m_state,TRUE);
}
然后我在OnDraw函数中用到这些PlayIP、PlayPort、State,但是我发现这些值在OnDraw函数中还是原来的初值,也就是说并没有通过上面的网页把参数传进来,这是为什么?
解决方案 »
- 使用MFC开发基于COIN 3D的 Activex插件
- 怎样建立伪彩色编码表?
- dll中的自定义子类不能有自己的成员函数,一有在程序里就会说无法解析,必须是子类重载父类成员函数才行????
- atl奇怪的问题
- 如何在文档中加入滚动条
- 一个奇怪的int 和doulbe呼唤的问题,真是太离奇了
- vs6.0 SP5 install
- 请教如何把OpenGL绘制的三维立方体投影在从摄像头中获取的图片当中
- ?谁帮我理解一下这个问题??写一个log的功能:
- vc下对话框的编程
- 有没有开启定时器且是调用其回调函数的代码
- 谈谈用基于MFC的CSocket、CAnsySocket类与基于套接字模型的优缺点(来者有分)
会不会是交换了以后有被你重新赋成初值了呢?调试看看两者的先后次序。