发表回复 
问题·已解决 有什么控件可以实现复杂的文字吗?(字里面有加粗,上标,字号不同的文字多种元素)
2017-08-21, 15 : 58 (这个帖子最后修改于: 2017-08-22 10 : 42 by mycoffees2.)
Heart 有什么控件可以实现复杂的文字吗?(字里面有加粗,上标,字号不同的文字多种元素)
有什么控件可以实现如下复杂的文本形式,
就是带有加粗,上标,字号不同的文字
[Image: fb6419271359adda.png]

这个是用Shell.Explorer实现的,不过每次改变里面的文字时总是要将html代码另存为html文件后再显示,产生很多临时文件,有没有这样的控件呢??
或者有没有直接将html文件预存在内存直接用于Shell.Explorer的方法??


---------------------------------------------------------------------

今天瞎逛论坛的时候看到了解决方案。
帖子为:Gui控件,字体能不能设置多个颜色?
(2015-10-27 02 : 12)tmplinshi 提到:  可以用浏览器控件。
代码: (全选)
Gui, Add, ActiveX, w200 h40 vdoc Disabled, MSHTML:共找到<span style="color:red; font-weight:bold" id="num">3</span>个结果
Gui, Add, Button, w100 h40, 搜索
Gui, Show, w400 h200
Return

Button搜索:
  doc.all.num.InnerText := A_MSec+0
Return

GuiClose:
ExitApp
百度了下innerText发现还有innerHTML
innerHTML:也就是从对象的起始位置到终止位置的全部内容,包括Html标签。
innerText:从起始位置到终止位置的内容, 但它去除Html标签。

如:<span id="tooltipText">5</span>个结果
个人理解innerText只能替换5这个结果,innerHTML会将整个<span id="tooltipText">5</span>个结果替换掉
试验了下,也是如此。

我原先这么写的
代码: (全选)
Gui Add, ActiveX, w500 h40 vGuiActiveX_Tooltip, Shell.Explorer
Gui, Add, Button, w100 h40 gGuiButton_show_Func, 显示
Gui, Show
return

GuiButton_show_Func:
pParamslist := {1:"通径", 2:"压力", 3:"法兰形式", 4:"法兰面形式", 5:"管路壁厚"}
Func_Display(GuiActiveX_Tooltip,Func_ShowMessage("FL", pParamslist, 4, 3))
return

Func_Display(WB,htmlString) {
    Count:=0  
    while % FileExist(f:=A_Temp "\" A_TickCount A_NowUTC "-tmp" Count ".DELETEME.html")  
        Count+=1  
    FileAppend,%htmlString%,%f%  
    WB.Navigate("file://" . f)
}
Func_ShowMessage(pKey, pParamslist, pMaxParamPos:=0, pCurParamPos:=0){
    ;global
    htmlString := "<!DOCTYPE html><html><body style=""background-color:white;""><p style=""font-size:16px"">"
    if pCurParamPos {
        htmlString .= "<big>&lt;" . pKey . "&gt; </big>"
        for index, element in pParamslist
        {
            ;A_Index - 1 ? : htmlString .= "<strong>"
            (pCurParamPos == A_Index )? (element := "<mark>[" . element . "]</mark>") :
            (pMaxParamPos >= A_Index) ? (element := "<strong>" . element . "</strong>") :
            element :=(",<sup style=""font-size:12px"">" . A_Index . "</sup>" . element)
            A_Index - 1 ? : (element := LTrim(element , ","))
            htmlString .= element
        }
        htmlString .= "</p></body></html>"
    }else{
        htmlString .= pKey . "</p></body></html>"
    }
    return %htmlString%
}
改成
代码: (全选)
Gui Add, ActiveX, w500 h40 vGuiActiveX_Tooltip Disabled, MSHTML:<span id="tooltipText"></span>
Gui, Add, Button, w100 h40 gGuiButton_show_Func, 显示
Gui, Show
return

GuiButton_show_Func:
pParamslist := {1:"通径", 2:"压力", 3:"法兰形式", 4:"法兰面形式", 5:"管路壁厚"}
GuiActivex_Tooltip.all.tooltipText.InnerHTML := Func_ShowMessage("FL", pParamslist, 4, 3)
return

Func_ShowMessage(pKey, pParamslist, pMaxParamPos:=0, pCurParamPos:=0){
    ;global
    htmlString := "<body style=""background-color:white;""><p style=""font-size:16px"">"
    if pCurParamPos {
        htmlString .= "<big><strong>&lt;" . pKey . "&gt; </strong></big>"
        for index, element in pParamslist
        {
            ;A_Index - 1 ? : htmlString .= "<strong>"
            (pCurParamPos == A_Index )? (element := "<span style=""color:red;"">[" . element . "]</span>") :
            (pMaxParamPos >= A_Index) ? (element := "<strong>" . element . "</strong>") :
            element :=(",<sup style=""font-size:12px"">" . A_Index . "</sup>" . element)
            A_Index - 1 ? : (element := LTrim(element , ","))
            htmlString .= element
        }
        htmlString .= "</p></body>"
    }else{
        htmlString .= pKey . "</p></body>"
    }
    return %htmlString%
}

记录下来。也许以后会忘了。
开始学习AHK感觉论坛活跃度很低啊,看来AHK还是冷门的东西啊。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合