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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0423
ぼうそう画面幅の取得2未解決


ぼうそう

リンク

2017/4/23(Sun) 08:39:08|NO.79227

HSPでwidth命令を使って幅を指定しました。こんな感じです。


#include "user32.as" screen 0,ginfo(20),ginfo(21) GetWindowLong hwnd, -16 SetWindowLong hwnd, -16, stat | $10000 | $40000 width 450,450 repeat mes ginfo(10) cls wait 1 loop

このとき、ginfo(10)は456になります。
タイトルバーがどうとか、色々あって456になるのは分かるのですが、widthで指定した通りの値を取得したいと思っているのですが、どうすればいいのでしょうか?



この記事に返信する


Taker32X

リンク

2017/4/23(Sun) 09:01:58|NO.79228

ginfo.12 あるいは ginfo_winx で……と思ったのですが、これだと 448 になりますね……



沢渡

リンク

2017/4/23(Sun) 10:34:43|NO.79230

SetWindowLongでスタイルを変更している影響で、width命令内部での計算方法が
実情と合わなくなっているのかもしれません。

SetWindowPosでウィンドウサイズを変更するようにしてみました。
その際、外枠込みでのウィンドウサイズを指定する必要があるので、
あらかじめAdjustWindowRectExで、外枠込みのウィンドウサイズを取得しています。
(参考 http://hsp.tv/play/pforum.php?mode=pastwch&num=5961


#include "user32.as" screen 0,ginfo(20),ginfo(21) GetWindowLong hwnd, -20 //拡張ウィンドウスタイルを取得 exStyle = stat GetWindowLong hwnd, -16 //ウィンドウスタイルを取得 style = stat | $10000 | $40000 SetWindowLong hwnd, -16, style rect=0,0,450,450 AdjustWindowRectEx varptr(rect), style, 0, exStyle SetWindowPos hwnd,0,0,0,rect(2)-rect(0), rect(3)-rect(1),$26 repeat mes ginfo_winx mes ginfo_winy cls wait 1 loop



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