//宣言部
HDChD;
PAINTSTRUCT ps;
TEXTMETRICtm;
RECTrt;
inti,j,k,l,m,n;
stringstr;
static inti_W,i_H,i_w,i_h;
//処理部(ペイント部のみ)
case WM_PAINT:
hD=BeginPaint(hW,&ps);
GetClientRect(hW,&rt);
i_W=rt.right-rt.left;
i_H=rt.bottom-rt.top;
SelectObject(hD,GetStockObject(OEM_FIXED_FONT));
GetTextMetrics(hD,&tm);
i_w=tm.tmAveCharWidth;
i_h=i_H/24;
SetROP2(hD,R2_NOTXORPEN);//これによる効果
SetTextAlign(hD,TA_LEFT|TA_TOP);
/////////////////////////////////////////////////////////
Rectangle(hD,2*i_w,2*i_h,66*i_w,12*i_h);//ok
Rectangle(hD,12*i_w,6*i_h,76*i_w,16*i_h);//ok
str="||||||||||||||";
TextOut(hD,0,0,str.c_str(),str.size());//out
str="--------------";
TextOut(hD,0,0,str.c_str(),str.size());//out
//////////////////////////////////////////////////////////
EndPaint(hW,&ps);
return 0;
において"SetROP2(hD,R2_NOTXORPEN);"により長方形を被せずに書くことができます
しかし文字は重ね書きできません
上の例では'+'を表示したいのに後で書いた'-'だけが表示されてしまいます
何か良い方法はないでしょうか?
No.2ベストアンサー
- 回答日時:
SetBkMode(hD, TRANSPARENT);
としておけばいいのではないでしょうか?
# あと DC で NULL_BRUSH を選択しておけば、
# SetROP2(hD,R2_NOTXORPEN);
# しなくても、長方形を塗りつぶさずに描けますよ。
ありがとうございました
下のようにすれば動きました
そして質問はR2_MASKPENとすべきでしたね
case WM_PAINT:
hD=BeginPaint(hW,&ps);
GetClientRect(hW,&rt);
i_W=rt.right-rt.left;
i_H=rt.bottom-rt.top;
SelectObject(hD,GetStockObject(OEM_FIXED_FONT));
GetTextMetrics(hD,&tm);
i_w=tm.tmAveCharWidth;
i_h=i_H/24;
i_ch=tm.tmHeight;
SelectObject(hD,GetStockObject(NULL_BRUSH));//SetROP2(hD,R2_MASKPEN);
SetTextAlign(hD,TA_LEFT|TA_TOP);
SetBkMode(hD, TRANSPARENT);
//////////////////////////////////////////////
Rectangle(hD,2*i_w,2*i_h,66*i_w,12*i_h);
Rectangle(hD,12*i_w,6*i_h,76*i_w,16*i_h);
str="||||||||||||||||||||||||||||||";
TextOut(hD,0,0,str.c_str(),str.size());
str="------------------------------";
TextOut(hD,0,0,str.c_str(),str.size());
//////////////////////////////////////////////
EndPaint(hW,&ps);
return 0;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- iPhone(アイフォーン) iPhone から Apple TV HD へ映像出力・HomePod mini へ音声出力同時に行 1 2022/05/08 14:05
- モニター・ディスプレイ WQHDのモニターにフルHDの解像度で表示させた時の見え方 5 2022/08/31 15:44
- タブレット アマゾンプライムデーで10インチのタブレットを安く購入しようと思ってますが・・・? 1 2022/07/11 19:41
- Visual Basic(VBA) エラー処理 3 2022/04/11 14:58
- その他(Microsoft Office) PCのHDの空きを増やすために,ONE driveのフォルダーを限定しましたが,容量が増えません? 4 2022/08/04 14:12
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- モニター・ディスプレイ Windows11のポインターのデザイン 1 2023/06/06 18:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UWSC SLCTBOXもしくはSELECTに...
-
デ-タテ-ブルの内容での更新...
-
VB6で、長い時間かかる処理...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
どちのほうがすきですか?
-
セレクトメニューで2つの項目...
-
CLispのloop内の挙動について
-
実行時エラー 3020の対策
-
パイソンのクラスについて
-
文字の横にプルダウンを表示さ...
-
セレクトメニューで選んだ値を...
-
【メモリ不足で落ちる(python)】
-
phpでボタンを押したときに変数...
-
perlでcheckboxがうまく整理で...
-
サーバー内のテキストデータを...
-
foreach (1..4){ 英文字$_→$新...
-
パイソンのクラスについて
-
vscode 文字化け
-
パイソンのクラスのブログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6で、長い時間かかる処理...
-
C言語のflagの使い方が分かりま...
-
VBAのCallステートメントについて
-
実行中の変数の中身をイミディ...
-
処理終了後、他のページへジャ...
-
初回起動のみ判別したい
-
回数を指定しないで空白行まで...
-
問題作成のWebアプリの作り方を...
-
UWSC SLCTBOXもしくはSELECTに...
-
フラグをたてる、、の意味を教...
-
perl:ループのカウンタ変数の値...
-
バッファリング処理を高速化し...
-
夕方くらいから急にGoogle検索...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
どちのほうがすきですか?
-
formで特定のinputを送信しない...
-
文字の横にプルダウンを表示さ...
-
16進の10進変換について
-
実行時エラー 3020の対策
おすすめ情報