• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:char*型の文字列を表示させたい。)

char*型の文字列を表示させるためのプログラムがうまくいかない

このQ&Aのポイント
  • Borland C++を使用して、char*型の文字列をウィンドウに表示させるプログラムを作成していますが、うまくいきません。
  • C言語のプログラムの書き方が分からず、文字列をファイルから読み込んでウィンドウに表示させる方法を知りたいです。
  • 以下のウェブサイトに掲載されているコードを参考にしたいのですが、具体的な方法が分かりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.1

前の投稿も拝見しましたが、これだけでは無駄なやり取りが続いて お互いに気付かれがしそうです。 何を持って「できない」としているか、その判断根拠を明確に するためにも「あなたが書いた(試した)コード」を記載して ください。 前の投稿で、 > int型の方は、wsprint関数を用いて表示させました。 とありますが、wsprintf の第一引数は文字配列ですし、 char* も文字配列(正確にはポインタだけど)です。 前回、wsprintf の第一引数に、何の型を入れてうまくいっているか を明記してもらえれば、簡単に回答できます。 また、開発環境(VC++.NET2003とか)を明記してもらえると もっと答えやすくなります。なお、UNICODE ビルドか、 非UNICODE かは、必ず記載してください。

noname#142813
質問者

お礼

int型の場合は、 wsprintf(str,"%5d",r); TextOut(hdc,0,430,str,5); このように記述すれば巧く表示されます。 しかし、char*型の場合がよくわかりません。

その他の回答 (3)

  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.4

> しかし、ウィンドウを動かすと、表示された文字が、 > 消えてしまうのはなぜでしょう? どのタイミングで描画していますか? WM_PAINT のタイミング(MFC なら OnPaint)で描画する必要があります。

noname#142813
質問者

お礼

回答ありがとうございます。 確かに、WM_PAINTのタイミングで描画しております。

  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.3

> wsprintf(str,"%5d",r); > TextOut(hdc,0,430,str,5); ということは、非UNICODE ビルドで、str は、char* 互換型ですね。 であれば、下記のように書けます。 const char* str = "test"; TextOut( hdc, 0, 430, str, lstrlen( str ) );

noname#142813
質問者

お礼

何とかできたようです。 しかし、ウィンドウを動かすと、表示された文字が、 消えてしまうのはなぜでしょう?

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

> wsprintf(str,"%5d",r); > TextOut(hdc,0,430,str,5); > このように記述すれば巧く表示されます。 > しかし、char*型の場合がよくわかりません。 char*型の変数が、pszstrだとして… TextOut(hdc,0,430,pszstr,lstrlen(pszstr)); で描画されませんか?

関連するQ&A