VC++初心者です。
Win2000 VC++.net MFC使用しています。
ダイアログベースでビットマップ上にコントロールを配置するにはどうしたらよいでしょうか。
ダイアログ上にスタティックテキストを配置していたのですが、
数が多くなってしまって、コントロールの制限数(?)を超えてしまったようなので、
テキストを全てビットマップで表示して、ボタンやエディット等のコントロールを
その上に配置しようとしていますがうまくいきません。
リソースエディタのピクチャコントロールを用いてビットマップを配置し、
他のコントロールも同様に配置すると、ビットマップの方が上に重なって
表示されてしまいます。
対処方法がありましたらお願いします。
> テキストを全てビットマップで表示して、ボタンやエディット等のコントロールを
> その上に配置しようとしていますがうまくいきません。
をやめて、ダイアログの任意の位置に文字列をTextOutで表示したほうが良いのでは?
当然OnPaintで描画処理をする。
> リソースエディタのピクチャコントロールを用いてビットマップを配置し、
> 他のコントロールも同様に配置すると、ビットマップの方が上に重なって
> 表示されてしまいます。
そのピクチャーにWS_CLIPSIBLINGSスタイルを追加してみてください。
Blueさん、dairygoodsさん 回答ありがとうございます。
テキストを簡単に変更できるように、TextOutで表示することにしました。
SelectObjectでフォントを設定するようにしましたが、
テキストの背景をダイアログと同じ色、もしくは色指定するにはどうすればいいでしょうか。
TextOutの前に該当デバイスコンテキストにSetBkColorでTRANSPARENTを指定してくださ
い。
MSDN
CDC::SetBkMode
http://www.microsoft.com/JAPAN/developer/library/vcmfc/_mfc_cdc.3a3a.setbkmode.
htm
CDC::TextOut
http://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/jpgdi/html/_win32_textout.asp
ごめんなさい。間違っていました。
> TextOutの前に該当デバイスコンテキストにSetBkColorでTRANSPARENTを指定してくだ
さ
い。
SetBkColorじゃなくて SetBkMode です。
# リンク先はあっているのに。。。orz
Blueさん、ありがとうございます。
希望通りの表示結果が得られました。
的確な指示を頂き、本当に感謝いたします。