マルチモニタでcxscreenNo.07572
おすぎ さん 15/05/09 15:32
 
お世話になっております。

マルチモニタで田楽のダイアログを出したいと思っています。
ダイアログ幅を片方のモニタいっぱいに出したいのですが、
次のように "cxscreen" を使うと、幅がモニタ2つ以上の巨大なものになります。

#r = dllfunc("NEWDIALOG", "コメント", cxscreen, "0 0 screen 'MS ゴシック'
18");

使い方がおかしいでしょうか?

[ ]
RE:07572 マルチモニタでcxscreenNo.07573
h-tom さん 15/05/09 20:23
 

h-tom です。

>マルチモニタで田楽のダイアログを出したいと思っています。
>ダイアログ幅を片方のモニタいっぱいに出したいのですが、
>次のように "cxscreen" を使うと、幅がモニタ2つ以上の巨大なものになります。
>
>#r = dllfunc("NEWDIALOG", "コメント", cxscreen, "0 0 screen 'MS ゴシック'
> 18");
>
>使い方がおかしいでしょうか?
そうなります。

第二引数は
> #n2 : ダイアログの横幅(単位は半角文字1文字分)
という事なので、
  指定した数字 × (指定したフォントの)半角文字1文字分の幅
がダイアログの幅になります。

つまり、
  cxscreen × (MS ゴシック 18ポイントの半角文字1文字分の幅)
では、ダイアログはかなり大きくなってしまいますよ。

[ ]
RE:07573 マルチモニタでcxscreenNo.07574
おすぎ さん 15/05/11 10:40
 
h-tom さん

ありがとうございます。

では、
マルチモニタで、田楽のダイアログを片方のモニタいっぱいに出す方法って
あるのでしょうか?

ちょっと調べた感じだと、
ピクセルとポイントの変換が難しいのかなと言う気がします。

すみません。
よろしくお願いいたします。

[ ]
RE:07574 マルチモニタでcxscreenNo.07575
h-tom さん 15/05/11 20:39
 

h-tom です。

>マルチモニタで、田楽のダイアログを片方のモニタいっぱいに出す方法って
>あるのでしょうか?

モニタいっぱいに出すのに必要な情報は以下になります。
1)サブモニタの大きさ
2)使うフォントの"幅"(フォントのポイントは高さだったはず。)
  (可能なら田楽DLLと同じ方法で取得したもの)

この情報を取得できれば可能ですが、秀丸マクロから直接取得する方法はないです。


あまり正確ではないのと、秀丸エディタの設定に影響されますが、
1)サブモニタの大きさ
  → 秀丸エディタ本体を移動させて最大化 → ウィンドウの幅を取得。

2)使うフォントの"幅"
  → 秀丸エディタ本体のフォント設定を変更し、半角文字を入力。
     xpixel の 変化量をフォントサイズにする。

という感じかな?
なんか、最大化したときに取得できるウィンドウサイズが、ちょっと変ですが。

[ ]
RE:07575 マルチモニタでcxscreenNo.07576
おすぎ さん 15/05/12 11:19
 
h-tom さん

ありがとうございます。

トライしてみます。

[ ]