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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1114
ウィンドウの枠を完全に消したい7解決


リンク

2012/11/14(Wed) 23:35:00|NO.50671

最小化ボタン、閉じるボタンのついたサイズ固定のウィンドウのウィンドウ枠を完全に消してクライアント座標のみの表示にしたいのですが、
SetWindowLong hwnd, $FFFFFFF0, $16CA0000 & -$80000 & -$40000 & -$C00000 & -$400000 & -$800000 & -$20000 & -$200000 & -$100000 & -$20000 & -$80000
で、思いつくスタイルの削除をしてみましたが数ピクセル(vistaだと上下左右に各5px)の枠が残ってしまいます。
残った枠を消してクライアント座標のみの表示にする方法がわかる方がいましたら教えて下さい。
よろしくお願いします。



この記事に返信する


kanahiron

リンク

2012/11/15(Thu) 00:00:56|NO.50672

bgscrではダメなのでしょうか?
クライアント領域だけの表示だと思いますが



fortunehill

リンク

2012/11/15(Thu) 01:44:04|NO.50673

/*ご参考(自分でキャプションバーを書いてみる)*/

#include "user32.as" /* #define DC_ACTIVE $1 #define DC_ICON $4 #define DC_INBUTTON $10 #define DC_SMALLCAP $2 #define DC_TEXT $8 #define DC_GRADIENT $20 */ : h0 = hwnd bgscr 1,640,480+21 : h1 = hwnd ii = 0,0,640,21 : DrawCaption h0,hdc,varptr(ii),$8 | $4 | $1 ii = 640-8-26, 4,640-8,18 : DrawFrameControl hdc,varptr(ii),1,0 ii = 640-8-26-30,4,640-8-30,18 : DrawFrameControl hdc,varptr(ii),1,2 ii = 640-8-26-60,4,640-8-60,18 : DrawFrameControl hdc,varptr(ii),1,1 redraw oncmd gosub *label_1,$201 gsel stop *label_1 ; 色んな処理 sendmsg h1,$A1,2 return



リンク

2012/11/15(Thu) 13:27:32|NO.50677

kanahironさん
言葉足らずですみません。
既に作成された(execで開いた)ウィンドウに対して変更を加えたいんです。

fortunehillさん
今回は利用出来ませんが、自分でウィンドウを作成する際には参考にさせていただきます。


ウィンドウの種類がscreen_frameでもscreen_fixedsizeと同じウィンドウスタイルがGetWindowLongで返ってきます。
しかし、実際に実行してみるとscreen_frameの場合だと、枠が消せません。

※ALT+F4でウィンドウを終了して下さい
//screen_frameの場合、枠が消せない
#include "user32.as" screen 0, 640, 480, screen_frame GetWindowLong hwnd, -16 mes stat SetWindowLong hwnd, -16, $16000000 GetWindowLong hwnd, -16 mes stat



fortunehill

リンク

2012/11/15(Thu) 15:29:36|NO.50681

/*再描画されていないだけでは?(キャプション部分は不定)*/

#include "user32.as" screen 0, 640, 480, GetWindowLong hwnd, -16 mes strf("%x",stat) SetWindowLong hwnd, -16, $16000000 GetWindowLong hwnd, -16 mes strf("%x",stat) showwindow hwnd,3



fortunehill

リンク

2012/11/15(Thu) 16:03:10|NO.50683

/*此れ書くの忘れてた(EXSTYLE)*/

screen 0, 640, 480, screen_frame GetWindowLong hwnd, -20 :mes strf("%x",stat) screen 1, 640, 480, screen_fixedsize GetWindowLong hwnd, -20 :mes strf("%x",stat)



リンク

2012/11/15(Thu) 19:23:33|NO.50688

fortunehillさん
showwindowは色々な定数で試してみましたが、変化なしでした。

ウィンドウの拡張スタイルをGetWindowLongで調べました。
枠が完全に消せるscreen_fixedsizeと比較すると、512($200)が余分である事がわかり、これを0にする事ができれば枠を消せると思うのですが、何故か上手くいきません。
	#include "user32.as"
screen 0, 640, 480, screen_frame//最小化ボタン、閉じるボタンのついたサイズ固定のウィンドウ GetWindowLong hwnd, -20 mes stat//拡張スタイルが768から512($200)になった。 GetWindowLong hwnd, -16 SetWindowLong hwnd, -16, $16000000 GetWindowLong hwnd, -20 SetWindowLong hwnd, -20, stat & -$200//512を0にする GetWindowLong hwnd, -20 mes stat//512のまま… SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 640, 480, SWP_DRAWFRAME & SWP_NOMOVE & SWP_NOSIZE//SetWindowPosでウィンドウの描画をしてみる GetWindowLong hwnd, -20 mes stat//512のまま…



リンク

2012/11/15(Thu) 22:44:14|NO.50689

stat & $0で拡張スタイルを削除できました。
あとはスクロールバーを消すだけなので解決とさせていただきます。
ご回答下さった方々ありがとうございました。



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