选择显示字体大小

控制vc++.net中web对话框的html元素属性(2)

     3、文本属性
  
    style builder对话框的text页面可对元素中的文本进行对齐、缩进、字距、行距以及书写方式进行设置,如图5所示。
  
  
  
    (1) 对齐方式(alignment)
  
    在水平方向(horizontal)的对齐方式表现为:left(左对齐)、centered(中间对齐)、right(右对齐)和justified(两端对齐),而在垂直方向表现为subscript text(垂直对齐文本的下标)和supperscript text(垂直对齐文本的上标)。
  
    若在水平对齐方式选中justified,还可有下列选项:
  
    auto : 自动调整两端对齐
  
    space words : 通过增加字之间的空格对齐文本。
  
    newspaper style : 通过增加或减少字或字母之间的空格对齐文本。
  
    distribute spacing : 处理空格很像newspaper,适用于东亚文档。
  
    distribute all lines : 两端对齐行的方式与distribute相同,适用于表意字文档。
  
    (2) 字距和行距
  
    字距(letters)与行距(lines)的调整相似,都有normal(正常)和custom(自定义)两项,若选中custom,则可在右边设置具体的间距大小。
  
    (3) 文本流(text flow)
  
    文本流包括indentation(缩进)和text direction(文本方向)两个属性。其中,文本方向可以有left to right(从左到右)和right to left(从右到左)两个选项。
  
    需要说明的是,以上的属性设置都有会在对话框下面的预览框看到相应的结果。
  
    二、在程序中获取和改变元素的css属性
  
    在web对话框类中获取和改变元素的css属性,可使用ihtmlelement接口,它提供了有关html元素的许多方法,其中get_style就是用来处理包括css在内的属性,它的原型如下:
  
     hresult get_style( ihtmlstyle **p );
  
    其中,p是ihtmlstyle指针变量,ihtmlstyle也是一个接口是用来提供获取和设置具体属性的方法。例如get_color和put_color是用来获取和设置元素的颜色,它们的原型如下:
  
    hresult get_color( variant *p );
  
    hresult put_color( variant v );
  
  其中,variant是与绝大多数数据类型相兼容的一种类型,使用时要注意设置variant变量的具体类型。
  
    下面的例子是当鼠标划过一段文字时,其颜色从红色变成蓝色,具体步骤如下:
  
    (1) 选择file菜单->new菜单->project命令,创建一个基于web对话框的ex_dlg方案工程(详细过程这里略)。
  
    (2) 切换到方案导航区的resource view窗口,展开html项,双击idr_html_ex_dlg_dialog项,这时就在文档窗口中显示相应的html模板。
  
    (3) 删除html模板中所有缺省的元素(包括ok和cancel按钮),双击html工具箱的linear layout panel按钮,在html页面中添加一个直线面板,在其中添加文字:"当你用鼠标划过这段文字时,看看有什么变化?"。
  
    (4) 在属性窗口中将上述添加的面板的id号改为div1,再单击style项右边的browse(...)按钮,将其文字颜色设置为红色(red)。
  
    (5) 打开web对话框类cex_dlgdlg文件ex_dlgdlg.cpp,在文件的前面找到begin_dhtml_event_map(cex_dlgdlg)与end_dhtml_event_map()之间的程序段,然后添加下列代码:
  
    dhtml_event_onmouseover(_t("div1"),onmouseoverdiv1)
  
    dhtml_event_onmouseout(_t("div1"),onmouseoutdiv1)
  
    其中事件映射宏dhtml_event_onmouseover和dhtml_event_onmouseout分别用来映射鼠标移至和移出的事件。
  
    (6) 打开头文件ex_dlgdlg.h,添加下面的事件映射函数的声明,并且添加成员变量m_varcolor用来保存原来的颜色值:
  
  public:
  variant m_varcolor;
  ...
  protected:
  ...
  hresult onmouseoverdiv1(ihtmlelement *pelement);
  hresult onmouseoutdiv1(ihtmlelement *pelement);
  
  
    (7) 再切换到ex_dlgdlg.cpp窗口,在程序的最后添加下列代码:
  
  hresult cex_dlgdlg::onmouseoverdiv1(ihtmlelement *pelement)
  {
  ihtmlstyle *phtmlstyle;
  pelement->get_style(&phtmlstyle);
  if (phtmlstyle)
  {
  variant varcolor;
  varcolor.vt = vt_i4;
  varcolor.lval = 0x0000ff;
  phtmlstyle->get_color(&m_varcolor);
  phtmlstyle->put_color(varcolor);
  phtmlstyle->release();
  }
  
  return s_ok;
  }
  
  hresult cex_dlgdlg::onmouseoutdiv1(ihtmlelement *pelement)
  {
  ihtmlstyle *phtmlstyle;
  pelement->get_style(&phtmlstyle);
  if (phtmlstyle)
  {
  phtmlstyle->put_color(m_varcolor);
  phtmlstyle->release();
  }
  
  return s_ok;
  }
  
  
    (8) 编译并运行,然后看看当鼠标划过那段文字后,颜色是不是会有变化?当移出时,颜色是不是以恢复到原来的红色?
  
  
  
    至此,通过以上的方法和技巧,我们就可以对html元素属性进行设置和程序控制。要提出来的是,在visual c++.net的beta 1版中,web对话框类cdhtmldialog的getelementproperty和setelementproperty好像并能有效获取和设置html元素的属性。
  
    


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons