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


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0612
nennneko5787Spotifyのウィンドウみたいにする方法は?5解決


nennneko5787

リンク

2022/6/12(Sun) 12:17:15|NO.96632

下のリンクの画像の赤矢印のようなことをやるにはどうすればいいんでしょうか?
https://i.imgur.com/gdFz0uH.png

見た感じタイトルバーにも描画していますね...



この記事に返信する


リンク

2022/6/12(Sun) 16:58:12|NO.96634

UWPアプリを作りたい、という事なのだろうか...
UWPはサポート終了の話があったはずなのでWindowsAppSDKを使用することになりそう(?)

別にそういう事じゃなくただデザイン的な話でいいのであれば
画像ボタン(objimage)だったり、onclickとかを使ってそれっぽいものを作ることはできる



nennneko5787

リンク

2022/6/12(Sun) 17:46:36|NO.96635

ありがとうございます。



法貴優雅

リンク

2022/6/12(Sun) 19:41:28|NO.96640

もう解決済みだけど、書いてみたコード。

#include "user32.as" #const PIC_BTN 9 // ボタンハンドル dim hBtn, 3 // バッファーにボタン画像を作成 buffer PIC_BTN color 0, 0, 0:boxf 0, 0, 135, 29 color 202, 202, 202:boxf 0, 30, 90, 59 color 228, 228, 228:boxf 0, 60, 90, 89 color 242, 112, 122:boxf 90, 30, 135, 59 color 232, 16, 36:boxf 90, 60, 135, 89 color 255, 255, 255 font "MS UI Gothic", 18 pos 14, 6:mes "−" pos 14, 36:mes "−" pos 14, 66:mes "−" pos 104, 6:mes "×" pos 104, 36:mes "×" pos 104, 66:mes "×" font "MS UI Gothic", 13 pos 62, 9:mes "□" pos 62, 39:mes "□" pos 62, 69:mes "□" // 一旦、最大サイズでメインウィンドウ作成 bgscr 0, ginfo(20), ginfo(21), 0 // ウィンドウサイズを可変にすると細いタイトルバーが付き // ウィンドウサイズもおかしくなる? //GetWindowLong hwnd, -16 //SetWindowLong hwnd, -16, stat | 0x40000 oncmd gosub *cmd_resize, 0x5 onclick gosub *cmd_move // ボタンを作成 objsize 45, 30 objimage PIC_BTN, 0, 0, 0, 30, 0, 60 button gosub "", *cmd_min hBtn(0) = objinfo(stat, 2) objimage PIC_BTN, 45, 0, 45, 30, 45, 60 button gosub "", *cmd_max hBtn(1) = objinfo(stat, 2) objimage PIC_BTN, 90, 0, 90, 30, 90, 60 button gosub "", *cmd_end hBtn(2) = objinfo(stat, 2) width 640, 480 stop *cmd_resize w = ginfo(10) h = ginfo(11) // ウィンドウサイズの最小サイズをリミッター if (w < 200):width 200, h:else: if (h < 200):width w, 200 // ボタン再配置 repeat 3 MoveWindow hBtn(cnt), w - (45 * (3 - cnt)), 0, 45, 30, 1 loop redraw 0 color 0, 0, 127 boxf color 255, 255, 255 pos 0, 0:mes "Window size:"+w+" x "+h redraw 1 return *cmd_move if wparam=1 : sendmsg hwnd, 0x00A1, 2, 0 return *cmd_min sendmsg hwnd, 0x112, 0xF020 stop *cmd_max if (bMax == 1) { bMax = 0 sendmsg hwnd, 0x112, 0xF120 } else { bMax = 1 sendmsg hwnd, 0x112, 0xF030 } stop *cmd_end end

ただ問題点として、ボタンが半透明でないのとウィンドウサイズを可変にすると
不具合が出るのと、元のサイズに戻すボタンが作るのめんどくさくて違う点があります。



法貴優雅

リンク

2022/6/12(Sun) 19:44:58|NO.96641

あ、マズい

button gosub "", *cmd_min button gosub "", *cmd_max button gosub "", *cmd_end
のgosubはいらないというか、外さないと不具合になるかも。



nennneko5787

リンク

2022/6/17(Fri) 17:34:15|NO.96673

>>96640
>>96641
ありがとうございます。



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