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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0520
GrapeColor(DION)オブジェクトのデザインを用意した画像に差し替え9解決


GrapeColor(DION)

リンク

2012/5/20(Sun) 17:32:54|NO.46742

なんか似たような質問に自分が答えといて質問するのはおかしな話ですが、教えてください。
因みに自分が作ったあのサンプルはプログラムがシンプルじゃない上、デザインがクラシックなので納得できませんでた。
大富豪Aさん、あんな粗末なサンプルで申し訳ないです。
http://hsp.tv/play/pforum.php?mode=all&num=46639

それでマウスの座標を調べて自分で管理すればいいじゃないかと(fさんに)言われてしまいそうですが、私はオブジェクトを使うことにこだわりがあり、オブジェクトをどうしても使いたいのです。
(ゲームであればそれでもいいのですが・・・)

で、本題に入りますが大富豪Aさんのほぼ同じ内容になりますが、
buttonをchkbox化した後にデザインをbuttonに戻しそのボタンのデザインを用意した画像に差し替えたいのです。
自分が作ったサンプルでは画像の上からクラシックデザインが上乗せされてしまい、納得できません。
SetWindowLongやsendmesg命令で可能なんでしょうか?
どなたか教えてください。



この記事に返信する


spider

リンク

2012/5/20(Sun) 17:40:56|NO.46743

カスタムドローをしたりすればできると思います。
カスタムドローでググって見てください。
きっと、色々出てきます。(HSPでカスタムドローするやつもあったはず)

もしくは、Cを使って
コントロールを自作しちゃうとか。



GrapeColor(DION)

リンク

2012/5/20(Sun) 20:27:09|NO.46769

えっと、objimageのように各パターンの画像を指定出来て、
なおかつボタン(のグラフィック)の上に画像を貼るのではなく、ボタン自体が画像(?)みたいな感じに出来る方法はありませんか?

カスタムドローで調べた結果、ボタンの上に画像を貼るタイプとボタンのデザインをちょっと変える方法しか見つかりませんでした。
HSP暦1年半のくせにAPIに弱くて申し訳ないです・・・



spider

リンク

2012/5/20(Sun) 20:39:20|NO.46770

うーん……
自分はカスタムドローぐらいしかやったことないし、
カスタムドローもマスターしたとはいいがたい状況なので
どうしようもないですね。

あ、Cを使って擬似ボタン作成できるけど、
Cは使えますか?(WinAPIプログラミングのこと)



GrapeColor(DION)

リンク

2012/5/20(Sun) 20:53:35|NO.46771

まったくCは使ったことが無いです
確か部活の先輩で詳しい方がいましたが・・・



spider

リンク

2012/5/20(Sun) 22:10:24|NO.46776

本格的にやるならオーナードローがいいでしょう。
オーナードローとかサブクラス化とかでぐぐったり、
その詳しい先輩に聞いてみるのがいいんじゃないですか?
ここはあくまでHSP3掲示板なんで・・・



check

リンク

2012/5/20(Sun) 22:30:28|NO.46777

>私はオブジェクトを使うことにこだわりがあり、オブジェクトをどうしても使いたい
と、いうのであればやはりオーナードローなり、ボタンを自作するなりしなくてはならないな。
それなら自由に自分の好きなGUIが作成できる。(画像の読み込みはBMPなど以外を使おうとするとめんどくさくなるが)

ボタンを自作したところで、そのオブジェクトをHSPのbutton命令のように扱うのはまた無理な話なんだけどな。
(HSPSDKの知識があればいくらか似せれるかも。詳しくないのでよく知らない。)

C/C++が使えたところで、めんどくさいWindowsAPIの仕様を知っていなければオーナードローはできないし、
まったくなんて使いにくいんだWindowsAPIは。
……ではなく、妥協して画像をボタン代わりに使うというのも1つの選択肢に入れておくのもいいかと。



GrapeColor(DION)

リンク

2012/5/20(Sun) 23:54:38|NO.46781

これを参考にオーバードローボタンを作ろうと思ったのですが・・・
http://lhsp.s206.xrea.com/hsp_tips10.html#3
ボタンに画像を使う方法がまったく分かりませんでした

そういえばobjimageって画像を途中で差し替えられましたよね?
それを上手く使えばトグルボタンっぽいものが作れるかもですね・・・



check

リンク

2012/5/21(Mon) 00:06:29|NO.46782


#define IMG_WIDTH 100 #define IMG_HEIGHT 100 hImage = LoadImage(0, "hoge.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE) hComDC = CreateCompatibleDC(hdc) SelectObject(hComDC, hImage) BitBlt(hdc, 0, 0, IMG_WIDTH, IMG_HEIGHT, hComDC, 0, 0, SRCCOPY) DeleteObject(hImage) DeleteDC(hComDC)
こんな感じで画像を描画できるはず。
APIの詳しい説明はMSDNのマニュアルでも見てくれ。



GrapeColor(DION)

リンク

2012/5/21(Mon) 02:21:50|NO.46784

結局自作してしまいました

#module #deffunc SetButtonImage int ox, int oy, str imagefile, int value if value > 1 : return -1 sel = ginfo_sel celload imagefile ImageBufferID = stat celdiv ImageBufferID, ox, oy wx = ginfo_winx : wy = ginfo_winy ImageBufferID2 = ginfo_newid buffer ImageBufferID2, wx, wy pos 0, 0 celput ImageBufferID, value celput ImageBufferID, 1 - value celput ImageBufferID, 2 gsel sel objimage ImageBufferID2, 0, 0, ox, 0, ox * 2, 0 objsize ox, oy return 0 #deffunc ChangeButtonImage int value if value > 1 : return -1 sel = ginfo_sel gsel ImageBufferID2 pos 0, 0 celput ImageBufferID, value celput ImageBufferID, 1 - value celput ImageBufferID, 2 gsel sel return 0 #global ////以下サンプル//// a = 1 //初期値 SetButtonImage 100, 100, "Image.bmp", a button gosub "イメージボタン", *jump title "" + a stop *jump a = 1 - a ChangeButtonImage a title "" + a return
[画像ファイル]https://www.sugarsync.com/pf/D341570_79_7123262301



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