
タイトルのままで恐縮です。
ソースは、以下のような感じです。
描画の所で線を描いているのですが、例えば、SetBkModeなどで、背景を透過(TRANSPARENT)等は、やった事があるのですが、文字そのものの透過がわかりません。透過率は適当で構いません。ご存知の方、ご教授願います。
宜しくお願い致します。
(中略)
// 描画した線自体を透過させたいです。
CDC* dc; // 実際は、関数のパラメータです
//ペンの作成
CPen Pen;
CPen* pOldPen = NULL;
if ( Pen.CreatePen( PS_SOLID, 2, color ) == FALSE )
{
return false;
}
pOldPen = dc->SelectObject( &Pen );
// 描画(線を描く)
// widht, height は関数パラメータ
dc->MoveTo( x, y );
// この線を透過したい
dc->LineTo( x + width, x + height ) );
dc->MoveTo( x + width, y );
// この線を透過したい
dc->LineTo( x, y + height );
//ペンを元に戻す
dc->SelectObject( pOldPen );

No.1ベストアンサー
- 回答日時:
文字そのものの透過というと、半透明で表示したいということでしょうか?
半透明で表示するには、メモリデバイスコンテキストに一旦出力してからアルファブレンディングをしなければなりません。
アルファブレンディング自体はAlphaBlend等の関数を使う方法や自前で実装するなどいろいろやり方がありますので、どれを選択するかは場合によります。
"メモリDC" や "アルファブレンディング" 等で検索してみるといいかと思います。
早々のご返事有難うございます。
アルファブレンディングキーワードを元にやり方を探してみたところ、CDCのメンバにAlphaBlend()という関数があり、その中の_BLENDFUNCTION構造体にSourceConstantAlphaという透過度を設定するメンバ変数がありました。
早速、試してみたところ無事、透過させることに成功致しました。
有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[VB.net] DataGridViewの列ヘッ...
-
TextBoxに文字を書いても表示さ...
-
Form1 Load で実行されない。
-
panelのスクロール表示について
-
MFCのタイマーのつかい方を教え...
-
InvalidateRectの使い方について
-
チャイルドダイアログの最前面表示
-
UpdateData( FALSE); による文...
-
word
-
GDI+で高速な描画
-
OneNote 2010 文字と描画がずれる
-
GetGlyphOutline() ご利用経験...
-
Minecraft 統合版(PC)の描画距...
-
VB6,リストボックスの特定行の...
-
VBAにGDI+を参照させる方法
-
MFCタブコントロールのグラデー...
-
CDC(LineTo)で描画した線を透過...
-
MFC FormViewの背景色
-
クラリス・インパクトに代わる...
-
Win32 API 途中から描画がおか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Minecraft 統合版(PC)の描画距...
-
[VB.net] DataGridViewの列ヘッ...
-
word
-
TextBoxに文字を書いても表示さ...
-
panelのスクロール表示について
-
google Colabでmatplotlibの描...
-
MFCでOnPaintのタイミング
-
CStaticコントロールの静的イメ...
-
VBAにGDI+を参照させる方法
-
Form1 Load で実行されない。
-
InvalidateRectの使い方について
-
CScrollViewの使用方法について
-
GDI+について
-
VC++プログラムをつかったBMP画...
-
ウインドウサイズを変更しても...
-
VB6,リストボックスの特定行の...
-
タブをオーナードローすると、...
-
ビットマップを表示させる(MFC)
-
UpdateData( FALSE); による文...
-
C++にて、塗りつぶされた円を描...
おすすめ情報