DisableDraw 時のページ移動関数について
No.06801
かわした
さん 02/02/24 22:34
かわしたです。
マクロ作成中に気づいたのですが、3枠区切りの場合 DisableDraw で
再描画を禁止すると NextPage2 や NextUnreadPage が失敗するのは
仕様でしょうか。
また、この場合 NextPage2 を実行してもページが進まないにも関わらず
返り値が 1(成功)となるのは仕様でしょうか。
次の未読メールをマクロで選択させようとして
while(1){
##np2 = dllfunc("NextPage2");
if(!##np2) break;
}
##tmp = dllfunc("NextUnreadPage");
としたところ、ページが進まないのに ##np2 が 1 を返し続けるため
無限ループしてしまいました。
[
△
]
RE:06801 DisableDraw 時のページ移動関数
No.06805
秀まるお
さん 02/02/25 14:00
調べてみたら、たしかにNextPage系がうまく動作してませんでした。
DisableDrawした状態だと、内部的にはウィンドウサイズが0x0となってまし
て、それで誤動作してました。DisableDrawしてる場合はウィンドウサイズ
(行数)が不明なので、とりあえず1行単位でカーソル移動するようにします。
ちなみにそもそもの秀丸エディタでも、disabledrawした状態でのnextpage
系はダメみたいです。(秀丸担当に報告済み)
[
△
]
RE:06805 DisableDraw 時のページ移動関数
No.06809
かわした
さん 02/02/25 16:59
かわしたです。早速の調査ありがとうございます。
欲を言えば3枠の本体側で実行した場合に
##tmp = dllfunc("DisableDraw");
##tmp = dllfunc("NextPage2");
##tmp = dllfunc("EnableDraw");
でも1ページ分移動しているのが理想なんでしょうけど
>DisableDrawしてる場合はウィンドウサイズ(行数)が不明なので、
ということなら仕方ないのでしょうね。
[
△
]