トップページ > 過去ログ > 記事閲覧
文字列の透過について
名前:山崎 日時: 2009/03/22 20:13

こんばんは、山崎と申します。 DXライブラリには常にお世話になっております。 この度は、文字列の透過についてお伺いに参りました。 OSはXP、エディタはVCC2008を使っております。 先ほど、DrawFormatStringToHandleで書く文字列を透過させようと、 直前でSetDrawBlendModeをおいて実行したのですが 描画された文字は透過されませんでした。 (後でリファレンスで確認したところ、元からそのような仕様でしたが) DrawFormatStringToHandleやDrawStringなどの関数で書いた文字を 透過させる方法はありますでしょうか。

Page: 1 |

Re: 文字列の透過について ( No.1 )
名前:管理人 日時:2009/03/22 22:33

透過させるというのは半透明で描画させるということでしょうか? それとも文字部分以外は描画しないようにしたい、ということでしょうか? 後者でしたら DrawFormatStringToHandle 自体が元々文字以外の部分は 描画しないようになっているので、ハードウエアに因る現象かもしれません ともあれ、最新のバージョンでは正常に描画される可能性がありますので、 宜しければこちらのバージョンをお使いになってみてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: 文字列の透過について ( No.2 )
名前:山崎 日時:2009/03/23 09:12

管理人様、ご返信誠にありがとうございます。 言葉足らずで申し訳ありません、 文字列を半透明で描画するには、というのがこちらの質問の意図でした。 こちらでも、もともと文字以外の部分は描画されておりませんのでそこは大丈夫です。 わざわざ最新版までご紹介くださり、本当にありがとうございます!!
Re: 文字列の透過について ( No.3 )
名前:管理人 日時:2009/03/24 13:54

半透明描画が正常に行われないということですね? こちらで正常な結果が確認できた簡単なプログラムを貼り付けますので、 宜しければ山崎さんの環境でもお試しになってみていただけないでしょうか? #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { // ウインドウモードで起動 ChangeWindowMode( TRUE ); // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1; // 画面を緑色にする DrawBox( 0,0,640,480,GetColor( 0,255,0 ), TRUE ) ; // 描画モードをアルファブレンドにして透明度を50%にする SetDrawBlendMode( DX_BLENDMODE_ALPHA, 128 ) ; // 文字列の描画 DrawString( 0, 0, "文字列の半透明描画", GetColor( 255,255,255 ) ) ; // キー入力待ち WaitKey(); // DXライブラリの後始末 DxLib_End(); // ソフトの終了 return 0; }
Re: 文字列の透過について ( No.4 )
名前:山崎 日時:2009/03/25 00:24

管理人様、ご返信誠にありがとうございます。 提示していただいたコードを試してみたところ、 うまく文字列を半透明にして表示することができました。 その後、私の作っているプログラムのコードをいろいろいじって見たところ、 期待通り文字列を半透明にすることができました。 どこをどう変えたら直ったのかちょっとわからないのが申し訳ないのですが、 私がただ単に凡ミスをして、半透明にならないと 勘違いしていただけというのは十分にありえます・・・。 もしそうであれば、管理人さんにはお手数をおかけしてしまい、平にお詫び申し上げるしだいです。 今回は本当にありがとうございました、 お手数をおかけして申し訳ございません。

Page: 1 |