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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0112
楽園クリップボードとスクロールバー11解決


楽園

リンク

2007/1/12(Fri) 16:23:57|NO.4758

 いきなりですが、質問です。
今、ペイントソフトを作っているのですが、現在クリップボードとスクロールバーのところで止まってしまっています。

クリップボードについては
stdlib(http://www.silkroad.ne.jp/sakura/web/contents/library.htm)を使っています。
無事に画像をクリップボードに貼り付けたり、クリップボードの画像を習得したりすることはできたのですが、
クリップボードの画像サイズの検知をどうすればいいかわかりません。元から組み込まれてなかったので
無理矢理Srexhsp.dllからHSP3.0で使えないところを消して使おうとしましたが、見事にクリップボードの画像のサイズを
検知する命令が対応してないようでした。
どうすれば、クリップボードの画像サイズを検知できるか教えてください。
もしくは、それを使って貼り付けた画像の移動などを行おうと思っているのですが、そのやり方が解れば使う必要がないのですが。

あとは、スクロールバーを(http://quasiquote.org/hspwiki/%a5%a6%a5%a4%a5%f3%a5%c9%a5%a6%a4%cb%a5%b9%a5%af%a5%ed%a1%bc%a5%eb%a5%d0%a1%bc%a4%f2%c9%d5%a4%b1%a4%eb)
を使わせてもらってつけたのはいいのですが、メニューバーの外についたりしてしまいました。
これを、メニューバーやステータスバーの内側につけるにはどうすればいいのでしょうか??
あと、スクロールしたことで今どこを表示してるのか、とかも知りたいのですがどうすればいいのでしょうか?

APIなどは初心者でこれから勉強しようと思っているのですが、先にペイントソフトを作って(もしくは作りながら)学ぼうと思っています。
もしお勧めのAPI講座みたいなのがありましたら、教えていただけるとありがたいです。

では、せめてクリップボードのだけでも返信していただけるとありがたいです。
それでは。



この記事に返信する


ナノ

リンク

2007/1/13(Sat) 12:39:56|NO.4765

>>画像サイズ取得
stdlibならexclipbd.asの131行目(getclipimg命令)の

CloseClipboard : dim bm,0
の前に

dialog ""+bm(1)+" "+bm(2), 0,""
とか入れて試してみて

>もしくは、それを使って貼り付けた画像の移動などを行おうと思っているのですが、
>そのやり方が解れば使う必要がないのですが。
この部分は、
「画像の移動方法がわからないのでクリップボードを使ってるけど・・・」
って意味?
だったらgcopyあたりを使えばいいんじゃない?



楽園

リンク

2007/1/13(Sat) 18:21:50|NO.4772

画像サイズの習得についてはありがとうございます。さっそくやってみます。

画像の移動方法の件は、「クリップボードの画像サイズがわからない状態で、
クリップボードの画像を貼りつけて、貼りつけた画像を画面内で移動させる」っていう感じなんです。
サイズがわからないとどの部分を移動させればいいかわからないんで。書き方が悪かったですね。
どうもありがとうござじました^^

もう少し待ってスクロールバーの返答がなければ解決にしたいと思います。



ゆちボン

リンク

2007/1/13(Sat) 19:22:16|NO.4773

ウィンドウからはみ出した画像は確か勝手に
スクロールバーがついたような気がするんですが(^^;
気のせいですか?

手順

1.大きな画像を読み込む
2.ウィンドウを小さく設定

できあがり。



楽園

リンク

2007/1/14(Sun) 17:13:34|NO.4792

 つきましたっけ?^^;やったときはつかなかったような・・・もう一度試してみます!!
そういや、つくのはできたんですが、どれだけスクロールされたかが知りたいんです。
今製作中のペイントソフトは、screen 2で加工して、screen 1に常に貼りつけるという形なので、
どうしても、scrren 1で表面的に加工しているのをscreen 2と合わせたいのです。
だから、どれだけスクロールしていて、どこを加工してるかわかるようにしたいんです。

それと、ナノさん。
CloseClipboard : dim bm,0の前にdialog ""+bm(1)+" "+bm(2), 0,""といれましたが、
できませんでした。。見た感じbm(1)とbm(2)がクリップボードのx,y座標を表していると思ったんですが・・・
どういう意味なのでしょうか??何か他のやり方とかはありませんか?^^;



YOYO

リンク

2007/1/15(Mon) 02:28:04|NO.4805

>どれだけスクロールされたかが知りたいんです
スクロールバーが自動で付くのはHSP2.6までです。
スクロールバーの移動量はginfo_vx,ginfo_vyで調べられます。
>見た感じbm(1)とbm(2)がクリップボードのx,y座標を表していると思ったんですが・・
その通りのはずですので、たぶん楽園さんが間違ってると思います。
>もしお勧めのAPI講座みたいなのがありましたら、教えていただけるとありがたいです
APIの勉強ならちょくとさんのサイトで勉強するのがお勧めです。
http://yokohama.cool.ne.jp/chokuto/
あとblueleafさんのサイトにある便利ツールの "WIN32API定数"と"MSDN WIN32APIへのリンク集"
をダウンロードしておきましょう。
http://hp.vector.co.jp/authors/VA034288/
これだけでいろいろ出来るようになります。



さくら

リンク

2007/1/16(Tue) 00:38:15|NO.4826

※何故か、新スレッドでは、返信できないので、こちらにしておきます。

getclipimgにarray prm1を追加変更して、x,yサイズを
数値型配列変数に返すようにすると良いでしょう。


#deffunc getclipimg array prm1 ;途中省略 prm1(0)=bm.1 ;追加 prm1(1)=bm.2 ;追加 CloseClipboard : dim bm,0 } InvalidateRect hwnd,0,TRUE return 0



楽園

リンク

2007/1/16(Tue) 00:44:20|NO.4828

YOYOさんどうもありがとうございます!
スクロールバーについては解決しました。あとAPIについてもお勧めしていただいてありがとうございます!ぜひ勉強してみます!

クリップボードの画像サイズについては CloseClipboard : dim bm,0 の前に dialoj を挿入してbm(1)bm(2)がx,yを表してるとわかりましたが、残念ながら現在書いているプログラムでは使えずexclipbdモジュールないだけでしか使えないというか有効じゃないみたいです(^^;
#define global cx ""+bm(1)+""などでマクロ登録してみたりしましたが、exclipbdモジュール内ではdialogで確認したところ有効みたいですが、なぜかプログラム内に戻ると0になっています。どうすればモジュール内でのクリップボードのサイズをプログラム内で使えるようになるのでしょうか??

諸事情で携帯からの書き込みなのでいろいろミスがあったりするかもしれませんが、もし二回投稿されてたりしたら除去してください。



楽園

リンク

2007/1/16(Tue) 01:07:24|NO.4831

さくらさんに言われた通りにexclipebdにarrayなどを追加してbm(1)=bm.1などで代入してみました。プログラムでprm1(0)がxになるってことですよね?
ってのはわかりましたが、getclipimg命令を使うと#Error 23 変数名が指定されていません、となりました(^^;
これはこちらのミスなのでしょうか?それとも何かまだ足りないのでしょうか?(^^;



YOYO

リンク

2007/1/16(Tue) 06:13:22|NO.4839

モジュールのことがよくわかってないようですが、とりあえず解決法を。
さくらさんのいう通りに追加したのなら、あなたの書いたプログラムの中の
getclipimgを使っている部分も修正します。

getclipimg size //size(0)とsize(1)にx,yサイズが代入されます



楽園

リンク

2007/1/16(Tue) 16:10:58|NO.4845

確かにモジュールについてもかなり無知です・・・
やっと解決しました。ナノさんゆちボンさんさくらさんYOYOさんどうもありがとうございました!!



kz3

リンク

2007/1/16(Tue) 16:59:28|NO.4847

NO.4825は削除してください。



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