• 締切済み

エディットボックス

VC++、APIでwindowsプログラムを書いています。ダイアログボックスで質問があります。 case WM_INITDIALOG: SetDlgItemText(hDlg, IDC_EDIT1, "0"); return TRUE; で読み取り専用エディットボックス内に初期値を書き case WM_CTLCOLORSTATIC: { HDC hdc = (HDC)wParam ; SetTextColor( hdc, RGB( 255, 255, 255)) ;// 白色 SetBkMode(hdc, TRANSPARENT); // 背景を透過 return (BOOL)(HBRUSH)GetStockObject(NULL_BRUSH) ; } でダイアログボックス内のスタティックテキストと読み取り専用エディットボックスの背景を同時に透過させているのですが、エディットボックス内の文字を void ddd( HWND hDlg, int xxx) { char ttt[100]; sprintf(ttt,"%d",xxx); SetDlgItemText(hDlg, IDC_EDIT1, ttt); return ; } で書き換えると古いテキストが残ったように表示されます(背景に色を指定すれば古いテキストは残らない)。 うまく表示させるにはどういった方法があるでしょうか? ご存知の方、よろしくお願いします。 ちなみにダイアログボックスにはビットマップが貼ってあります。

みんなの回答

  • yotta
  • ベストアンサー率32% (26/79)
回答No.2

だとするとテキストを書く前にビットマップを貼るようにすればいいのではないでしょうか?

ion_2005
質問者

お礼

すみません。 遅くなりました。 いろいろ試してみましたが、いろいろ問題が出てきたので、もう少し勉強してからやりたいと思います。 ありがとうございました。

  • yotta
  • ベストアンサー率32% (26/79)
回答No.1

> SetBkMode(hdc, TRANSPARENT); // 背景を透過 背景を透過すると残ったままになります SetBkMode(hdc,OPAQUE); // 背景を非透過 SetBkColor(hDC,RGB(0,0,0)); // 黒色=エディットボックスの背景色? として背景色を指定して下さい

ion_2005
質問者

補足

ありがとうございます。 しかし、背景としてはダイアログボックスに貼ったビットマップとしたいので、色はできるだけ指定したくありません。やっぱり不可能でしょうか?

関連するQ&A