- PR -

VC++60MFC:DrawText()で第3引数をうまく操れません!

1
投稿者投稿内容
砂嵐ジバ
常連さん
会議室デビュー日: 2005/12/03
投稿数: 25
投稿日時: 2006-02-02 19:49
//ボタン1領域をブラシで塗りつぶす
void CColorButton:rawCaption(CDC *pDC, CRect rect,const COLORREF color,const CString& str)
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(color);
if(!selectflug) pDC->DrawText(str,rect,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//@
else pDC->DrawText(str,rect,DT_CENTER | DT_VCENTER | DT_SINGLELINE);//A第3引数を変更
}
DrawText()Aで、
水平方向に1ピクセル:つまり、DT_CENTER +1 と言う風にです
垂直方向に1ピクセル:つまり、DT_VCENTER +1 と言う風にです
下記のようにしてもボタンのテキスト文字が移動できませんでした。文字の表示はします。
pDC->DrawText(str,rect,DT_CENTER +1 | DT_VCENTER +1 | DT_SINGLELINE);//A
第3引数を変更して、1ピクセル移動させたいのですが・・・!
ご教授ください!

[ メッセージ編集済み 編集者: 砂嵐ジバ 編集日時 2006-02-02 19:59 ]
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-02-02 19:59
第3引数は文字列を表示するときの属性を指定するもので、座標位置を指定するものではありません。まして各ビットのOn/Offで属性を現しているのですから、加減算なんかしたら予測不能なフラグ状態になってしまいますよ。

座標は第2引数で指定してください。第2引数のメンバを+1するだけなんだから、すぐでしょ。
砂嵐ジバ
常連さん
会議室デビュー日: 2005/12/03
投稿数: 25
投稿日時: 2006-02-02 20:01
回答ありがとうございます、
早速、やってみます!
砂嵐ジバ
常連さん
会議室デビュー日: 2005/12/03
投稿数: 25
投稿日時: 2006-02-02 20:12
ありがとうございました。
ご指摘の第2引数の操作で解決しました。
1

スキルアップ/キャリアアップ(JOB@IT)