|
|
2015/1/26(Mon) 06:04:39|NO.67093
タイトルの通りですが
可変できるウインドウサイズに合わせてaxobjサイズを変更するにはどうしたらいいでしょうか?
一応以下のコードに対して、ginfo(7)でなんとかしようとしたんですがダメでしたorz
よろしくお願いします。
#define DIID_DWebBrowserEvents2 "{34A715A0-6587-11D0-924A-0020AFC7AC4D}"
#define DISPID_NEWWINDOW3 273
gsel 0,-1
screen 1,500,200
url = " http://yahoo.co.jp"
axobj ie, "Shell.Explorer.2", 500 , 200
ie->"Refresh2" 2 // 完全な再読み込み
comevent ie_event, ie, DIID_DWebBrowserEvents2, *event
if netf=0 :ie->"Navigate" url
stop
*event
dispid = comevdisp(ie_event)
// 新しいウィンドウを開く処理だった場合
if dispid == DISPID_NEWWINDOW3 : gosub *OnNewWindow3
return
*OnNewWindow3
comevarg Cancel, ie_event, 1, 2
comevarg _Url, ie_event, 4, 2
// 新しく開く先のURLを取得
ptr = _Url("bstrptr")
dupptr newurl, ptr, 512, 2
url = cnvwtos(newurl) // Unicodeなので変換する
delcom _Url
// ナビゲートキャンセル
Cancel("val") = 1
delcom Cancel // IEウインドウ表示を中止
exec url, 16 // メインブラウザで表示
return
|
|
2015/1/26(Mon) 17:22:00|NO.67096
「ブラウザのサイズをウィンドウのサイズに随時合わせたい」という解釈で
私なりにいじってみました。
コメントのうち、(追加)または(変更)の箇所に新しく書き加えています。
user32.dllのMoveWindow関数を利用し、
ウィンドウサイズが変更された時にはWM_SIZEメッセージが送られてくるので
それを受け取ったらresizeラベルにジャンプさせています。
HSP3本体に同梱されているモジュール「common\obj.as」にも
この関数を呼び出す「resizeobj」命令があるようです。
//user32.dllを利用し、MoveWindow関数を定義します(追加)
#uselib "user32.dll"
#func MoveWindow "MoveWindow" int,int,int,int,int,int
//ウィンドウのサイズが変更された時に送られてくるメッセージ(追加)
#define WM_SIZE 0x0005
#define DIID_DWebBrowserEvents2 "{34A715A0-6587-11D0-924A-0020AFC7AC4D}"
#define DISPID_NEWWINDOW3 273
gsel 0,-1
//リサイズしやすいようにいじらせてもらいました(変更)
//ginfo(20)と(21)はデスクトップのサイズです
screen 1, ginfo(20), ginfo(21), 0, -1, -1, 640, 480
url = "http://yahoo.co.jp"
axobj ie, "Shell.Explorer.2", 640, 480
//オブジェクトのハンドルを取得しておく(追加)
objhwnd = objinfo(stat, 2)
ie->"Refresh2" 2 // 完全な再読み込み
comevent ie_event, ie, DIID_DWebBrowserEvents2, *event
if netf=0 :ie->"Navigate" url
//ジャンプ先を指定しておく(追加)
oncmd gosub *resize, WM_SIZE
stop
*event
dispid = comevdisp(ie_event)
// 新しいウィンドウを開く処理だった場合
if dispid == DISPID_NEWWINDOW3 : gosub *OnNewWindow3
return
*OnNewWindow3
comevarg Cancel, ie_event, 1, 2
comevarg _Url, ie_event, 4, 2
// 新しく開く先のURLを取得
ptr = _Url("bstrptr")
dupptr newurl, ptr, 512, 2
url = cnvwtos(newurl) // Unicodeなので変換する
delcom _Url
// ナビゲートキャンセル
Cancel("val") = 1
delcom Cancel // IEウインドウ表示を中止
exec url, 16 // メインブラウザで表示
return
//ジャンプ先(追加)
*resize
//ハンドル, 位置X, 位置Y, 幅, 高さ, 再描画するかどうか
//ginfo(12)と(13)はウィンドウのクライアント領域のサイズ
MoveWindow objhwnd, 0, 0, ginfo(12), ginfo(13), 1
return
もし私の解釈違いでしたらすみません。一応このまま動くようにいじってあります。
| |
|
2015/1/26(Mon) 18:21:40|NO.67103
これでいいかも!
僕のOS
windows7ですけどね
title "Internet Explorer"
//user32.dllを利用し、MoveWindow関数を定義します(追加)
#uselib "user32.dll"
#func MoveWindow "MoveWindow" int,int,int,int,int,int
//ウィンドウのサイズが変更された時に送られてくるメッセージ(追加)
#define WM_SIZE 0x0005
#define DIID_DWebBrowserEvents2 "{34A715A0-6587-11D0-924A-0020AFC7AC4D}"
#define DISPID_NEWWINDOW3 273
gsel 0,-1
//リサイズしやすいようにいじらせてもらいました(変更)
//ginfo(20)と(21)はデスクトップのサイズです
title "Internet Explorer"
screen 1, ginfo(20), ginfo(21), 0, -1, -1, 1000 ,1000
url = "http://yahoo.co.jp"
axobj ie, "Shell.Explorer.2", 1000, 1000
title "Internet Explorer"
//オブジェクトのハンドルを取得しておく(追加)
objhwnd = objinfo(stat, 2)
ie->"Refresh2" 2 // 完全な再読み込み
comevent ie_event, ie, DIID_DWebBrowserEvents2, *event
if netf=0 :ie->"Navigate" url
//ジャンプ先を指定しておく(追加)
oncmd gosub *resize, WM_SIZE
stop
*event
dispid = comevdisp(ie_event)
// 新しいウィンドウを開く処理だった場合
if dispid == DISPID_NEWWINDOW3 : gosub *OnNewWindow3
return
*OnNewWindow3
comevarg Cancel, ie_event, 1, 2
comevarg _Url, ie_event, 4, 2
// 新しく開く先のURLを取得
ptr = _Url("bstrptr")
dupptr newurl, ptr, 512, 2
url = cnvwtos(newurl) // Unicodeなので変換する
delcom _Url
// ナビゲートキャンセル
Cancel("val") = 1
delcom Cancel // IEウインドウ表示を中止
exec url, 16 // メインブラウザで表示
return
//ジャンプ先(追加)
*resize
//ハンドル, 位置X, 位置Y, 幅, 高さ, 再描画するかどうか
//ginfo(12)と(13)はウィンドウのクライアント領域のサイズ
MoveWindow objhwnd, 0, 0, ginfo(12), ginfo(13), 1
return
ここ
16から25行
screen 1, ginfo(20), ginfo(21), 0, -1, -1, 1000 ,1000
url = " http://yahoo.co.jp"
axobj ie, "Shell.Explorer.2", 1000, 1000
どうやら
1000 ,1000
これがScreenSize?
でした。
1000, 1000
がそのSize
です。
(解決するか?)
| |
|
2015/1/26(Mon) 23:12:21|NO.67108
UEAさん
Mitukiさん
ありがとうございまーーーーーーす!!
凄いですねふたりとも
どちらもちゃんと動きました^^
参考にさせて頂きます
ところでサイズのミニマムって指定できますでしょうか?
|
|
2015/1/27(Tue) 08:04:21|NO.67112
UEAさん
さっそくサンプル文を組み込んでみて、最小値はうまくいったんですが、逆に最大値が広げたくない広さまで広がっちゃいました(^^;)
ちょっと僕にはまだ難しい内容なので、徐々に勉強していきたいと思います。
ありがとうございました。
|
|
2015/1/27(Tue) 15:57:44|NO.67115
僕も実は初心者です。www
|
|