DrawTextについて

[戻る]
浪人 2003/11/07(金) 02:03:03
WIN-NT  VC++6.0 MFC
で描画処理を行ってます。
次の手順で1文字ずつ描画しています。

 CreateFontIndirect();
 SelectObject();    // ペン、カラー,フォントなど既定値を確保しつつ設定
 SetVewportOrg();
 SetMapMode(MM_ISOTROPIC);
 SetWindowExt();
 SetViewportExt();
  DrawText(.... ,DT_SINGLELINE|DT_BOTTOM|DT_CLIP);
 逆順に既定値に戻す

10行(10文字/行)ほど連続出力した後,描画位置をかえて再び10行描画すると、
描画位置を変えてからは DT_BOTTOMの効果がなくなり、DT_TOPの効果になってしまいます。
この理由がわからなくて困っています。
DrawText()はこの行でしか出力してません。
何か参考になることがありましたらお教えください。よろしくお願いします。

dairygoods 2003/11/07(金) 10:58:26
途中でy軸が逆転してしまっているということはないですか?

浪人 2003/11/07(金) 21:47:12
dairygoods さんありがとうございます。
y軸も調べましたが変わってはいないと思います。

処理内容をもう少し説明しますと。
描画を指示するクラスと描画クラスに分かれています。
デバイスコンテキストと位置は指示クラスから引数で描画クラスに渡しています。
描画位置を変更するときはこの描画クラスをdeleteしあらためて
インスタンスを作成し直します。

いろいろ試してみたのですがだめでしたので、DrawTextだけをTextOutとSetTextAlignに
変更しました。この結果正常に描画されるようになり目的は達成されたのですが、
すっきりしません。
DrawText()は使用制限でもあるのでしょうか?

古いスレッドには追加発言できません。