5-8万年薪顶级嵌入式,京沪深就业地 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  HTML/XML

如何在控件中改变页面上一个元素的背景色?

楼主0313700000(^她^的@妈妈@不爱我)2003-12-11 20:44:40 在 VC/MFC / HTML/XML 提问

CComPtr<IOleContainer>   spIE;  
  m_spClientSite->GetContainer(&spIE);  
  CComQIPtr<IHTMLDocument2,&IID_IHTMLDocument2>   spDoc(spIE);  
  CComPtr<IHTMLElement>   sp;  
  CComPtr<IHTMLStyle>   style;  
  HRESULT   hr;  
  if(spDoc)  
  {  
  hr=GetHTMLElement(OLESTR("Log1"),&sp);  
  if(FAILED(hr))  
  {  
  MessageBox("FAILED(hr)","",1);  
  return   S_FALSE;  
  }  
  CComVariant   a("对行发送放行命令成功");  
  sp->put_innerText(a.bstrVal);  
  MessageBox("a","",1);  
  sp->get_style(&style);  
  MessageBox("b","",1);  
  VARIANT   v;  
  v.ulVal=RGB(255,255,255);  
  style->put_backgroundColor(v);  
  // style->put_color(v);  
  MessageBox("c","",1);  
  }  
  使用上面的代码对页面上id为Log1的编辑框赋值成功,但无法改变背景色  
  我看到msdn上说明:   IHTMLElement的style为只读属性,那我要怎么样才能改变背景颜色呢?  
  另外  
  我是用IHTMLElement的get_innerText得不到编辑框中的文本(同一个IHTMLElement指针可以对编辑框赋值),得到都是空,用什么方法得到,能有代码最好,谢谢 问题点数:200、回复次数:2Top

1 楼jiangsheng(蒋晟.Net[MVP])回复于 2003-12-11 21:43:44 得分 200

1    
  if   (   dispidMember   ==   DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER   )  
  {  
          IHTMLStyle*     pStyle   =   NULL;  
          HRESULT       hr;  
          hr   =   m_pElem->get_style(&pStyle   );  
          if   (SUCCEEDED(hr))  
          {  
                  DWORD       color;  
                  pStyle->get_color(   &varColor);  
                  pStyle->get_backgroundColor(   &varBackColor   );  
                  color   =     GetSysColor(   COLOR_HIGHLIGHTTEXT   );  
                  pStyle->put_color(   CComVariant("red")   );  
                  color   =     GetSysColor(   COLOR_HIGHLIGHT   );  
                  pStyle->put_backgroundColor(   CComVariant("blue")   );  
                  }  
  }  
  else   if   (   dispidMember   ==   DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT   )  
  {  
          IHTMLStyle*     pStyle   =   NULL;  
          HRESULT     hr;  
          hr=     m_pElem->get_style(&pStyle   );  
          if   (   SUCCEEDED(hr))  
          {  
                  pStyle->put_color(   varColor   );  
                  pStyle->put_backgroundColor(   varBackColor   );  
  }  
   
  2   query   IHtmlInputElement   interface   from   the   same   object   of   IHTMLElement   by   IHTMLElement::QueryInterface,then   call   IHtmlInputElement::put_value  
  Top

2 楼lzwwiner(说我最想说的一句话)回复于 2004-02-20 12:39:30 得分 0

不可以恢复嘛。Top

相关问题

  • 遍历web页面中的动态生成的控件元素
  • 怎样能让背景图片与页面的控件位置上对应
  • 如何取得IE页面下ActiveX控件元素的指针??(masterz(MS MVP),jiangsheng(蒋晟.Net)进来看看)
  • 查找页面控件。
  • 控件背景透明
  • 透明背景的控件
  • 请问怎么调节image控件和form窗体的分辨率,我用一个ccpwebbroswer控件载入页面,image控件做背景图片,但是总是在不同的分辨率下显示不
  • 关于Servers页面的控件
  • 页面的控件,100分马上给
  • 带控件的页面刷新问题

关键词

  • hr
  • pstyle
  • ihtmlelement
  • spie
  • 背景
  • ccomvariant
  • put
  • 改变
  • ccomptr
  • backgroundcolor

得分解答快速导航

  • 帖主:0313700000
  • jiangsheng

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
x 提问