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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
1110
てんウィンドウの表示位置/widthの使い方 4未解決


てん

リンク

2016/11/10(Thu) 22:44:48|NO.77301

はじめまして

ウィンドウ(の表示位置)を画面上部の外へ持って行きたいのですが、
どうすればいいでしょうか?
試しに「width , ,0,-100」
としてみたのですが、上手くいきません
画面外(上部)にドラックしても引き戻されてしまいます。

OS側の制約でしょうか?



この記事に返信する


MillkeySoftware

リンク

2016/11/10(Thu) 23:37:52|NO.77302

width 説明
>>p1,p2およびp3,p4パラメータが省略されるか、またはマイナス値の場合は、現在の設定が使われます。

ですので、ウィンドウをマイナスに設置したい場合、直接WinAPI で操作してください。

#include "user32.as" #define SWP_NOSIZE 0x0001 #define SWP_NOZORDER 0x0004 //SetWindowPos HWND,ZORDER,MOVE_X,MOVE_Y,SIZE_X,SIZE_Y,FLAG MOVE_X = 0 //移動したいSCREEN_X 座標(省略できません) MOVE_Y = -100 //移動したいSCREEN_Y 座標(省略できません) //もし X か Y のどちらか変更しない場合でも、必ず設定してください。 //その場合の現在の位置は、x = ginfo(4) : y = ginfo(5) で調べることができます。 SetWindowPos hwnd,0,MOVE_X,MOVE_Y,0,0,SWP_NOSIZE | SWP_NOZORDER stop



てん

リンク

2016/11/11(Fri) 11:10:13|NO.77304

早々のご回答ありがとうございます。
WinAPIの助けが必要なのですね、勉強になります。
MillkeySoftware様のおかげでキーボード操作で上側突破できました。
マウスドラッグで上側突破の方法あれば教えて下さいませm()m



Yuuki

リンク

2016/11/11(Fri) 21:40:16|NO.77312

こんな感じですか?

#uselib "user32.dll" #func MoveWindow "MoveWindow" int , int , int , int , int , int MoveWindow hwnd , 0 , -100 ,ginfo(10),ginfo(11), 1



掘木

リンク

2016/11/11(Fri) 23:39:31|NO.77314

調べてみるとAeroスナップの機能の一部だとか。機能を無効にすれば移動できるようになるかと。

作成しているソフトがそのような操作を常に可能したいのであれば、
ソフト側でそれを可能にするだけのコードを用意する必要があります。
oncmdで色々なメッセージを監視、実際にMoveWindowやSetWindowPosにて動かすの流れかと。

WM_MOVE、WM_ENTERSIZEMOVE、WM_EXITSIZEMOVEあたりから、
いろいろメッセージの受け取り順序と実際のwindowの挙動を観察しつつ…でしょうね。



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