マルチモニタ時のsetwindowpos文No.00452
h-tom さん 07/02/18 17:38
 

h-tom です。

モニタの設定
┌─┐┌─┐
│1││2│
└─┘└─┘
1:プライマリ
2:セカンダリ

セカンダリモニタにファイルがある状態で、setwindowpos文を使うと、
プライマリモニタへ移動してしまいます。
//現状維持のつもり
setwindowpos windowposx, windowposy, windowcx, windowcy;
座標値を見ると、モニタの範囲外になっているので、その影響ですかね?

ちなみに、起動オプションの"/(x,y,w,h)"で指定した場合は、問題なさそう。

#デスクトップ保存・復元マクロのマルチモニタ対応で、座標指定を
#起動オプションからsetwindowposに変えたら、動作がおかしくなって
#気がつきました。

//ここから
openfile "/i";
$out = "";
setmonitor 0;
$out = $out + "monitor:" + str(monitor) + "\n" +
              "posx:" + str(windowposx) +
              "  posy:" + str(windowposy) + "\n" +
              "width:" + str(windowcx)  +
              "  height:" + str(windowcy) + "\n" +
              "cxscreen:" + str(cxscreen) +
              "  cyscreen:" + str(cyscreen) + "\n";
$out = $out + "--------------------------\n";

setmonitor 1;

$out = $out + "monitor:" + str(monitor) + "\n" +
              "posx:" + str(windowposx) +
              "  posy:" + str(windowposy) + "\n" +
              "width:" + str(windowcx)  +
              "  height:" + str(windowcy) + "\n" +
              "cxscreen:" + str(cxscreen) +
              "  cyscreen:" + str(cyscreen) + "\n";
$out = $out + "--------------------------\n";

setwindowpos windowposx, windowposy, windowcx, windowcy;

$out = $out + "monitor:" + str(monitor) + "\n" +
              "posx:" + str(windowposx) +
              "  posy:" + str(windowposy) + "\n" +
              "width:" + str(windowcx)  +
              "  height:" + str(windowcy) + "\n" +
              "cxscreen:" + str(cxscreen) +
              "  cyscreen:" + str(cyscreen) + "\n";
$out = $out + "--------------------------\n";
message $out;
endmacro;
//ここまで

出力結果
---------------------------
秀丸エディタ
---------------------------
monitor:0
posx:66  posy:66
width:768  height:536
cxscreen:1024  cyscreen:768
--------------------------
monitor:1
posx:1090  posy:66
width:768  height:536
cxscreen:1024  cyscreen:768
--------------------------
monitor:0
posx:66  posy:66
width:768  height:536
cxscreen:1024  cyscreen:768
--------------------------

---------------------------
OK  
---------------------------

[ ]
RE:00452 マルチモニタ時のsetwindowpos文No.00453
h-tom さん 07/02/18 20:50
 

h-tom です。

環境を書き忘れました。
OS:WindowsXP SP2
秀丸:Ver.6.50β23
ちなみに、動作確認は、ノートPC+外部モニタという状態です。

[ ]
RE:00453 マルチモニタ時のsetwindowpos文No.00457
秀丸担当 さん 07/02/19 14:46
 

>setwindowpos windowposx, windowposy, windowcx, windowcy;
>座標値を見ると、モニタの範囲外になっているので、その影響ですかね?

確かにこれでプライマリの範囲を超える場合はだめなようです。
うまいこといくように修正させていただきます。

[ ]