2012-04-11 16 views
0

エラーが発生しました:デバッグアサーションがmyDC.DrawTextで失敗しましたか? その行を削除すると、グラフィックスが正常に動作します。CDC :: DrawTextは機能しませんか?

CPaintDC dc(this); 

CBitmap myBmp; 
CDC myDc; 

HANDLE h = ::LoadImage(NULL,"C:\\lady.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE); 
myBmp.Attach(h); 

myDc.DrawText("Hello",CRect(10,10,100,30),DT_CENTER); // Debug Assertion Failed 


myDc.CreateCompatibleDC(&dc); 
myDc.SelectObject(&myBmp); 
dc.BitBlt(20,10,436,363,&myDc,0,0,SRCCOPY); 
+0

アサーションとは何ですか? – persiflage

答えて

3

実際にDCを作成する前に、テキストを描画しています。 DrawText行をCreateCompatibleDB行の下に移動します。

+0

これはエラーの原因となりました。しかし、私はテキストを見ていないのですか?私もCDC :: TextOutを使ってみましたが、テキストは表示されませんでしたか? – jdl

+0

ここであなたが達成しようとしていることは実際には言いません。イメージの上にテキストを描画する場合は、BitBltの後にDrawText LASTを配置します。それ以外の場合、BitBltはテキストの上にビットマップを描画します(テキストを完全に覆い隠す可能性が最も高い) – jlew

+0

最後に何もしなかったか?どこかで指定しなければならないフォントはありますか? – jdl

関連する問題