HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0228
kaiIEコンポネートを使用したブラウザのサイズについて(可変ウインドウ)6未解決


kai

リンク

2014/2/28(Fri) 21:44:01|NO.60329

何度もすいません。kaiです。
今回は、可変ウインドウについてです。
サンプル(sample/comobj/contest7.hsp)のウインドウのサイズを自由に変更する方法を教えてください。
できれば、サンプルスクリプトなどもお願いします。



この記事に返信する


MillkeyStars

リンク

2014/2/28(Fri) 23:20:40|NO.60333

ウィンドウの作成で、きちんとヘルプ読んでればわかるはずですが。
screen 0 は規定でサイズ可変ウィンドウになりません。可変ウィンドウを作るには、ウィンドウ ID 1 以上を指定してください。

上記が仕様となるので、screen 1を作成してその screen 1 上にオブジェクトを作成すればいいのです。

screen 1,ginfo_dispx,ginfo_dispy,0,,,640,480
上記で、最大サイズが画面サイズの初期サイズ 640x480 のウィンドウが作成可能です。

あとサイズ変更と同時にオブジェクトのサイズを連動させる場合、適切なウィンドウメッセージを処理してください。



なたで

リンク

2014/2/28(Fri) 23:29:54|NO.60335

サンプル(contest7.hsp)を直接いじったわけではありませんが、
とりあえず、設置したIEコンポーネントの大きさを変える場合は次のようになります。


#include "user32.as" #define GWL_STYLE -16 #define WM_SIZE 0x00000005 #define WS_MAXIMIZEBOX 0x00010000 #define WS_THICKFRAME 0x00040000 // 真偽値 #define FALSE 0 #define TRUE 1 // 作成するウィンドウの大きさ #define WIDTH_ 800 #define HEIGHT 600 screen 0, ginfo_dispx, ginfo_dispy width WIDTH_, HEIGHT // 現在のウィンドウに、サイズ変更境界と、最大化ボタンをつける GetWindowLong hwnd, GWL_STYLE SetWindowLong hwnd, GWL_STYLE, stat | WS_THICKFRAME | WS_MAXIMIZEBOX // IEコンポーネント設置とそのハンドルを取得 axobj ie, "Shell.Explorer.2", WIDTH_, HEIGHT iehandle = objinfo(stat, 2) // サイズを変えた時 oncmd gosub *onSize, WM_SIZE // とりあえず移動 ie->"Navigate" "http://www.onionsoft.net" stop *onSize // p1 対象 -> iehandle // p2 x座標 -> 0 // p3 y座標 -> 0 // p4 横幅 -> ginfo_winx // p5 縦幅 -> ginfo_winy // p6 再描写 -> FALSE(なし) MoveWindow iehandle, 0, 0, ginfo_winx, ginfo_winy, FALSE return



kai

リンク

2014/3/1(Sat) 17:38:45|NO.60359

>なたで さんのスクリプトを使用させていただきました・・・が、このスクリプトでボタンなどを配置していると表示がおかしくなってしまいます。
ボタンなどをウインドウの大きさによって同期させる方法を教えてもらえませんか?



なたで

リンク

2014/3/1(Sat) 19:22:55|NO.60366

MoveWindowは、移動やリサイズができます。
これは、buttonやinputにも使用できます。

*doRedrawというサブルーチンを用意して、
その中で、ボタンの位置や、色々なオブジェクトの大きさを
計算してあげて、移動・リサイズさせればできます。

#include "user32.as" #define GWL_STYLE -16 #define WM_SIZE 0x00000005 #define WS_MAXIMIZEBOX 0x00010000 #define WS_THICKFRAME 0x00040000 #define FALSE 0 #define TRUE 1 // 作成するウィンドウの大きさ #define SCREEN_WIDTH 640 #define SCREEN_HEIGHT 480 // 作成したオブジェクトのハンドルを取得 #define OBJECT_HANDLE objinfo(stat, 2) // とりあえず画面の大きさのウィンドウを作成して、目的の大きさへ変更する screen 0, ginfo_dispx, ginfo_dispy width SCREEN_WIDTH, SCREEN_HEIGHT // 現在のウィンドウに、サイズ変更境界と、最大化ボタンをつける GetWindowLong hwnd, GWL_STYLE SetWindowLong hwnd, GWL_STYLE, stat | WS_THICKFRAME | WS_MAXIMIZEBOX // ボタンやらを設置する button gosub "test1", *dummy handle_button1 = OBJECT_HANDLE button gosub "test2", *dummy handle_button2 = OBJECT_HANDLE x = "test3":input x handle_input1 = OBJECT_HANDLE // サイズを変えた時 oncmd gosub *onResize, WM_SIZE // ボタンなどの位置や大きさを調節する gosub *doRedraw stop *dummy return // ウィンドウの大きさが変わったら *onResize // 全体を再描写 gosub *doRedraw return *doRedraw // ボタン1の位置と大きさを設定する hb1_x = 0 hb1_y = 0 hb1_width = ginfo_winx / 2 // 画面の半分の横幅 hb1_height = 20 // 高さは20 // ボタン2の位置と大きさを設定する hb2_x = hb1_width // ボタン1の右側に配置 hb2_y = 0 hb2_width = ginfo_winx / 2 // 画面の半分の横幅 hb2_height = 20 // 高さは20 // インプットボックス1の位置と大きさを設定する hi1_x = 0 hi1_y = hb1_y + hb1_height // ボタン1の下側に配置 hi1_width = ginfo_winx // 画面の全体の横幅 hi1_height = 20 // 高さは20 // ここで実際に移動・リサイズする // MoveWindow // p1 対象のハンドル // p2 x座標 // p3 y座標 // p4 横幅 // p5 縦幅 // p6 再描写 TRUE(あり)/FALSE(なし) 今回は、再描写しないと乱れる場合はTRUE MoveWindow handle_button1, hb1_x, hb1_y, hb1_width, hb1_height, TRUE MoveWindow handle_button2, hb2_x, hb2_y, hb2_width, hb2_height, TRUE MoveWindow handle_input1, hi1_x, hi1_y, hi1_width, hi1_height, TRUE return



kai

リンク

2014/3/1(Sat) 20:00:27|NO.60367

ありがとうございます。
なたでさん(NO.60335)のスクリプトを組み込んだのですが、画面の大きさを変えるとIEコンポーネントの画面が大きくなってしまい、
ボタンが表示されなくなってしまいます。

スクリーンショット1(初期状態)
http://www.fastpic.jp/images.php?file=0745614528.png

スクリーンショット2(画面サイズを変えてみた)
http://www.fastpic.jp/images.php?file=2105760810.png

スクリーンショット3(もともとボタンなどがあった場所にマウスをかざすとよみがえる)
http://www.fastpic.jp/images.php?file=2773433182.png

どうすればいいでしょうか?



あり

リンク

2014/3/1(Sat) 20:35:14|NO.60369

IEコンポーネントのサイズと位置指定で
他のオブジェクトの位置情報が考慮されていないからです。

IEコンポーネントのサイズと位置の指定は
他オブジェクトのサイズと位置を差し引いて重ならない値にしなければ
オブジェクトが重なって表示されてしまいます。



ONION software Copyright 1997-2023(c) All rights reserved.