我想输出阿拉伯语文本,它在输出窗口上以RTL为导向。此输出窗口用作历史记录的滚动窗口,一次一个片段。 MsgBox具有RTL参数,但在处理滚动功能时不友好。滚动功能只需滚动鼠标中键即可,因此您可以逐个滚动浏览50个历史片段。
答案 0 :(得分:0)
看一下这个例子:
myPid := DllCall("GetCurrentProcessId")
wordList := "Lorem ipsum dolor sit amet consetetur"
StringSplit, wordList, wordList, %A_SPACE%
counter := 0
myMsgBox := -1
F9::
myMsgBox := WinExist("ahk_pid " myPid " ahk_class #32770")
if(counter + 1 > wordList0) {
ControlSetText, Static1, DONE
return
}
counter++
if(!myMsgBox) {
SetTimer, MakeMyMsgBox, -1
} else {
ControlSetText, Static1, % wordList%counter%
}
return
MakeMyMsgBox:
MsgBox, 1048576, RTL Test, % wordList%counter%
return
重点是使用SetTimer
生成MsgBox
,允许热键例程再次运行,尽管存在等待的MsgBox窗口。我没有每次关闭旧的MsgBox并生成新的MsgBox,而是使用ControlSetText
更新现有的MsgBox。