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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
1130
うめうさステータスバー設置について2解決


うめうさ

リンク

2011/11/30(Wed) 23:18:05|NO.43384

どなたかご教授願います。

ステータスバーを設置したのですが
親ウィンドウのサイズを変えると、ステータスバーが先の場所に取り残されてしまいます。

親ウィンドウサイズを変更した場合に
子ウィンドウであるステータスバーを、自動的に親ウィンドウにフィットさせたいのですが、
どのような記述をすると可能でしょうか。

下が現在のスクリプトです。
(それとも、設置の仕方が間違っているのでしょうか……

#include "user32.as" #define WS_CHILD $40000000 #define WS_VISIBLE $10000000 #define WS_OVERLAPPEDWINDOW $00CF0000 ;最大化ウィンドウで作成 ; 最大化するために、ディスプレイサイズでウィンドウ作成 screen scrID, ginfo(20), ginfo(21) ; 自ウィンドウのスタイルを変更 GetWindowLong hwnd, -16 SetWindowLong hwnd, -16, stat | WS_OVERLAPPEDWINDOW ;標準のウィンドウサイズに設定 width 640, 480 ;ステータスバー作成 winobj "msctls_statusbar32", "ステータスバー作成", , WS_CHILD | WS_VISIBLE hStatus = objinfo(stat, 2) stop



この記事に返信する


アイガモ

リンク

2011/11/30(Wed) 23:35:30|NO.43385

ウィンドウサイズが変更されたときに、ステータスバーへWM_SIZEを送信すればできます。

#include "user32.as" #define WM_SIZE $00000005 #define WS_CHILD $40000000 #define WS_VISIBLE $10000000 #define WS_OVERLAPPEDWINDOW $00CF0000 ;最大化ウィンドウで作成 ; 最大化するために、ディスプレイサイズでウィンドウ作成 screen scrID, ginfo(20), ginfo(21) ; 自ウィンドウのスタイルを変更 GetWindowLong hwnd, -16 SetWindowLong hwnd, -16, stat | WS_OVERLAPPEDWINDOW ;標準のウィンドウサイズに設定 width 640, 480 ;ステータスバー作成 winobj "msctls_statusbar32", "ステータスバー作成", , WS_CHILD | WS_VISIBLE hStatus = objinfo(stat, 2) oncmd gosub *OnSize, WM_SIZE stop *OnSize sendmsg hStatus, WM_SIZE, 0, 0 return



うめうさ

リンク

2011/11/30(Wed) 23:46:13|NO.43386

ありがとうございます!
感動です!

そのように記述することで
ウィンドウサイズが変更されたとき
ステータスバーに通知できるんですね!

これで制作が進められます!
ありがとうございます!



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