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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0418
名無し2つウィンドウを出す際に表示位置を隣接させたい5解決


名無し

リンク

2015/4/18(Sat) 00:22:44|NO.68600

アプリ実行時にサイズが違う2つのウィンドウを表示させるのですが、
その際に表示位置が隣接するように置きたいのです。
どのように書けばいいのかご教示願います。



この記事に返信する


窓月らら

リンク

2015/4/18(Sat) 00:33:16|NO.68601

どうぞ。

// 1つ目のウィンドウ screen 0,480,320,0,0,0 : title "window 1": cls 4 x=ginfo_sizex: y=ginfo_sizey color 255,255,255: mes "横サイズ="+x+" 縦サイズ="+y // 2つ目以降のウィンドウ screen 1,256,128,0,x,0 : title "window 2" // 横に並べる screen 2,256,128,0,0,y : title "window 3" // 縦に並べる stop



名無し

リンク

2015/4/18(Sat) 01:15:02|NO.68602

>>NO.68601
ありがとうございます。でも、自環境では少し重なってしまうのですが……
http://i.imgur.com/I7y76y6.png



科学太郎

リンク

2015/4/18(Sat) 10:03:41|NO.68604

> ありがとうございます。でも、自環境では少し重なってしまうのですが……
Windows Vista 以降はフレーム枠と見た目の外枠が違いますね。

screen 0,480,320,SCREEN_NORMAL,0,0 title "メイン" fx=ginfo_sizeX-ginfo_winX fy=ginfo_sizeY-ginfo_winY sx=ginfo_sizeX sy=ginfo_sizeY screen 1,256,128,SCREEN_NORMAL,sx+fx-1,0 title "横" screen 2,256,128,SCREEN_NORMAL,0,sy+fx-1 title "縦" stop
これで期待通りですが、Windows XP などでは隙間が空きます。
Windows Vista 以降の限定なら使えるが。



totori

リンク

2015/4/18(Sat) 11:26:21|NO.68605


#uselib "Dwmapi.dll" #cfunc DwmGetWindowAttribute "DwmGetWindowAttribute" int, int, var, int #enum DWMWA_NCRENDERING_ENABLED = 1 #enum DWMWA_NCRENDERING_POLICY #enum DWMWA_TRANSITIONS_FORCEDISABLED #enum DWMWA_ALLOW_NCPAINT #enum DWMWA_CAPTION_BUTTON_BOUNDS #enum DWMWA_NONCLIENT_RTL_LAYOUT #enum DWMWA_FORCE_ICONIC_REPRESENTATION #enum DWMWA_FLIP3D_POLICY #enum DWMWA_EXTENDED_FRAME_BOUNDS #enum DWMWA_HAS_ICONIC_BITMAP #enum DWMWA_DISALLOW_PEEK #enum DWMWA_EXCLUDED_FROM_PEEK #enum DWMWA_CLOAK #enum DWMWA_CLOAKED #enum DWMWA_FREEZE_REPRESENTATION #enum DWMWA_LAST #define S_OK 0 // 1つ目のウィンドウ screen 0,480,320,0,0,0 : title "window 1": cls 4 // Windows Vista以降か? if varptr(DwmGetWindowAttribute){ // RECT構造体 dim rect, 4 if S_OK == DwmGetWindowAttribute(hwnd, DWMWA_EXTENDED_FRAME_BOUNDS, rect, 16){ x = rect.2 : y = rect.3 }else{ // Aeroが無効 x = ginfo_sizex : y = ginfo_sizey } }else{ // XP以前 x = ginfo_sizex : y = ginfo_sizey } color 255,255,255: mes "横サイズ="+x+" 縦サイズ="+y // 2つ目以降のウィンドウ screen 1,256,128,0,x,0 : title "window 2" // 横に並べる screen 2,256,128,0,0,y : title "window 3" // 縦に並べる stop



名無し

リンク

2015/4/28(Tue) 17:02:27|NO.68826

解決しました。



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