0

我想输出阿拉伯语文本,它在输出窗口上面向 RTL。此输出窗口将用作您的历史记录的滚动窗口,一次一个片段。MsgBox 有 RTL 参数,但在处理滚动功能时不友好。滚动功能应该只通过滚动鼠标中键来工作,因此您可以快速滚动浏览 50 个历史片段,一个一个。

4

1 回答 1

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 并每次都生成一个新的,而是使用ControlSetText.

于 2013-08-13T15:30:07.537 回答