ダイアログベースのビットマップ上にコントロールを配置する。 – プログラミング – Home

ダイアログベースのビットマップ上にコン...
 
通知
すべてクリア

[解決済] ダイアログベースのビットマップ上にコントロールを配置する。


あると
 あると
(@あると)
ゲスト
結合: 19年前
投稿: 6
Topic starter  

VC++初心者です。
Win2000 VC++.net MFC使用しています。

ダイアログベースでビットマップ上にコントロールを配置するにはどうしたらよいでしょうか。

ダイアログ上にスタティックテキストを配置していたのですが、
数が多くなってしまって、コントロールの制限数(?)を超えてしまったようなので、
テキストを全てビットマップで表示して、ボタンやエディット等のコントロールを
その上に配置しようとしていますがうまくいきません。

リソースエディタのピクチャコントロールを用いてビットマップを配置し、
他のコントロールも同様に配置すると、ビットマップの方が上に重なって
表示されてしまいます。

対処方法がありましたらお願いします。


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 19年前
投稿: 59
 

> テキストを全てビットマップで表示して、ボタンやエディット等のコントロールを
> その上に配置しようとしていますがうまくいきません。
をやめて、ダイアログの任意の位置に文字列をTextOutで表示したほうが良いのでは?
当然OnPaintで描画処理をする。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

> リソースエディタのピクチャコントロールを用いてビットマップを配置し、
> 他のコントロールも同様に配置すると、ビットマップの方が上に重なって
> 表示されてしまいます。

そのピクチャーにWS_CLIPSIBLINGSスタイルを追加してみてください。


返信引用
あると
 あると
(@あると)
ゲスト
結合: 19年前
投稿: 6
Topic starter  

Blueさん、dairygoodsさん 回答ありがとうございます。
テキストを簡単に変更できるように、TextOutで表示することにしました。
SelectObjectでフォントを設定するようにしましたが、
テキストの背景をダイアログと同じ色、もしくは色指定するにはどうすればいいでしょうか。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

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


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

ごめんなさい。間違っていました。
> TextOutの前に該当デバイスコンテキストにSetBkColorでTRANSPARENTを指定してくだ

い。
SetBkColorじゃなくて SetBkMode です。
# リンク先はあっているのに。。。orz


返信引用
あると
 あると
(@あると)
ゲスト
結合: 19年前
投稿: 6
Topic starter  

Blueさん、ありがとうございます。
希望通りの表示結果が得られました。
的確な指示を頂き、本当に感謝いたします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました