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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
1110
E.Tウィンドウにくっつくウィンドウみたいのを作りたい11解決


E.T

リンク

2014/11/10(Mon) 18:54:06|NO.65977

こんにちは。
PicBearなどで端をドラックすると親ウィンドウから離れ近づけるとくっつく感じ
のやつがあるのですがそれはどのように作れるのでしょうか。
また親ウィンドウ上部だとくっつくウィンドウは横に
左右だと縦にアイコンをなればせるにはどうしたらいでしょうか。
それと実行ファイル時とスクリプトから実行した時にウィンドウサイズ
が違うのは仕様でしょうか。
回答よろしくお願いします。



この記事に返信する


zero

リンク

2014/11/11(Tue) 12:45:38|NO.65986

PicBearを知らないので正確には分からないのですが、
見たところツールペインのような感じですね。
無理やり再現するとしてこんな感じでしょうか(整列とかしてませんが)

#include "user32.as" gsel 0 hwndMain = hwnd screen 1, 150, 150, screen_tool | screen_fixedsize hwndTool = hwnd title "tool window" SetWindowLong hwndTool, -8, hwndMain SetParent hwndTool, hwndMain GetWindowLong hwndTool, -16 SetWindowLong hwndTool, -16, stat | 0x40000000 SetWindowPos hwndTool, 0, 0, 0, 0, 0, 1|4 SetActiveWindow hwndMain joint = 1 oncmd gosub *SysCommand, 0x0112 oncmd gosub *ExitSizeMove, 0x0232 stop *SysCommand if (wparam == 0xF012) { fMoving = 1 } return *ExitSizeMove if (fMoving) { dim rcMain, 4 GetWindowRect hwndMain, varptr(rcMain) dim rcTool, 4 GetWindowRect hwndTool, varptr(rcTool) if (joint) { // 中から外へ if ((rcTool.0 < rcMain.0) || (rcTool.1 < rcMain.1) || (rcMain.2 < rcTool.2) || (rcMain.3 < rcTool.3)) { GetWindowLong hwndTool, -16 SetWindowLong hwndTool, -16, stat ^ 0x40000000 SetParent hwndTool, 0 SetWindowPos hwndTool, 0, rcTool.0, rcTool.1, 0, 0, 1|4 joint = 0 } } else { // 外から中へ if ((rcTool.0 > rcMain.0) && (rcTool.1 > rcMain.1) && (rcMain.2 > rcTool.2) && (rcMain.3 > rcTool.3)) { GetWindowLong hwndTool, -16 SetWindowLong hwndTool, -16, stat | 0x40000000 SetParent hwndTool, hwndMain ScreenToClient hwndMain, varptr(rcTool) SetWindowPos hwndTool, 0, rcTool.0, rcTool.1, 0, 0, 1|4 SetActiveWindow hwndMain joint = 1 } } } fMoving = 0 return

大体のエッセンスは分かってもらえるかと思います



E.T

リンク

2014/11/11(Tue) 17:02:48|NO.65989

>zeroさん
#HSP script preprocessor ver3.4 / onion software 1997-2014(c)
#Use file [hspdef.as]
#HSP code generator ver3.4 / onion software 1997-2014(c)
???(15) : error 2 : 文法が間違っています (15行目)
--> setactivewindow hwndmain

とエラーが出ます。



cats

リンク

2014/11/11(Tue) 19:33:21|NO.65990

>また親ウィンドウ上部だとくっつくウィンドウは横に
>左右だと縦にアイコンをなればせるにはどうしたらいでしょうか。
この辺りの日本語がよく分からないのですが、ウィンドウAをウィンドウBにある程度まで
近づけるとピタッとくっつくという感じですか。
それとも zero さんのコードのようにウィンドウに親子関係を持たせるのですか。



E.T

リンク

2014/11/11(Tue) 21:23:45|NO.65991

>catsさん
分かりにくくてすいません。
PicBearでいうと文字列ツール、消しゴムツール、鉛筆ツールなどのアイコンが並んだところ
やレイヤー、パレットが
動かせるところです。
PicBearを見ていただくとわかると思います。



zero

リンク

2014/11/11(Tue) 21:27:32|NO.65992

>>E.Tさん
#include "user32.as" を忘れていません?


>この辺りの日本語がよく分からないのですが、ウィンドウAをウィンドウBにある程度まで>
>近づけるとピタッとくっつくという感じですか。
>それとも zero さんのコードのようにウィンドウに親子関係を持たせるのですか。
PicBear(PictBearのタイポだと思われる)を画像検索して、MDIウィンドウに付属する
ドッキング可能な小さいウィンドウのことを言われていると解釈しました。
もしcatsさんの言われているようなものでしたらすいません。
(私も検索する前はcatsさんの言われているものだと思っていましたが)



cats

リンク

2014/11/11(Tue) 21:41:18|NO.65993

レバーコントロールのことでしょうか。
昔作ったことがある気がしますがコードはどこかに行ってしまいました。
http://www.kumei.ne.jp/c_lang/sdk2/sdk_182.htm
↑こんな感じの固定されないバーです。



E.T

リンク

2014/11/11(Tue) 23:10:24|NO.65994

>zeroさん
#include "user32.as"は入っています。

>catsさん
http://1drv.ms/1wP36If
にアップした画像のオレンジでかこんだところにあるやつです。



cats

リンク

2014/11/12(Wed) 17:11:26|NO.65997

ツールバーやメニューバーの部分はレバーコントロールですね。
No.65993で示したURL先にも詳しい説明が載っています。
ウィンドウはたぶんMDIだと思います。
MDIについてはこちらの方がモジュール化されています。
http://ma2.nm.land.to/download/index.html



E.T

リンク

2014/11/14(Fri) 15:56:09|NO.66013

zeroさんのコードを改造して
とりあえずそれっぽいのができたので解決にします。
ありがとうございました



(´・ω・`)

リンク

2014/11/14(Fri) 22:03:14|NO.66014

スレと関係ないけどzeroさんの「エッセンス」がどういう意味なのかわからない・・・
日本語で書けばいいのに・・・



zero

リンク

2014/11/14(Fri) 23:37:14|NO.66016




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