|
Iranoan さん、秀まるお様回答ありがとうございます。
"EnableDraw2","enabledraw"でカーソルが画面のどの位置に表示されるか
を制御できるとは知りませんでした。目からうろこです。
早速試してみたところ、無事希望どおりの動作になりました。
ありがとうございました。
loaddll "TKInfo.dll";
//秀丸メール本体ウィンドウの描画を禁止
//フォルダ枠も含めて描画禁止
//DisableDraw関数(TkInfo.dll)
##n = dllfunc("ExecAtMain", "DisableDraw",1);
//カーソル位置を記憶
##x = x ;
##y = y ;
//マクロ開始時の画面の先頭の行のy座標を取得する。
##sc_ty = screentopy ;
//マクロ開始時の画面の先頭の行のy座標を取得する。
//画面の最後に移動し、座標を取得
goscreenend ;
##sc_ex = x ;
##sc_ey = y ;
message "カーソル x=" + str(##x) + ",y=" + str(##y) + "\n" +
"screen topy=" + str(##sc_ty) + "\n" +
"screen endx=" + str(##sc_ex) + ",y=" + str(##sc_ey) ;
//現在のフォルダを記憶
$$folder = dllfuncstr( "CurrentFolder" );
//別フォルダに移動。例として"受信"フォルダに移動
##n = dllfunc( "SelectFolder", "", "受信" );
//元のフォルダに移動
##n = dllfunc( "SelectFolder", "", $$folder );
//表示されているメールのカーソル移動を実施して
//元に表示していた領域を復元。
//マクロ開始時のカーソル位置に移動。
moveto ##x, ##y;
//ウィンドウの描画を実施。表示する先頭を指定して実行。
##n = dllfunc("EnableDraw2", ##sc_ty);
freedll;
endmacro;
|
|