二回目の右クリックで正しく表示(C言語・API)

このQ&Aのポイント
  • C言語にて、Windows APIを使用し、ウィンドウを作成しています。
  • 右クリックでファイルパスを読み込み、テキストファイルから文字数を取得し、長方形で表示するプログラムを作成しています。
  • ファイルパスの読み込みは一回目の右クリックでは成功するが、二回目以降はうまくいかない問題が発生しています。
回答を見る
  • ベストアンサー

二回目の右クリックで正しく表示(C言語・API)

C言語にて、Windows APIのプログラミングをしております。 現在ウィンドウを作成して、右クリックでファイルパスを 読み込み、そのテキストファイルからある文字の数を数えて その数だけ長方形にして表示させるプログラムを作成しております。 そこで、一回目の右クリックでファイルパスの読み込みは成功 したのですが、二回目以降、うまく行きません。 ファイルパスの表示は、何回もファイルパスを呼び出しても、 うまく表示されます。 長方形がうまく表示されないのですが、なぜでしょうか。 ソースはこちらになります。コンパイラはBorland C++ のフリーのものを使用しております。 http://onegaisimasune.web.fc2.com/main4.txt

noname#142813
noname#142813

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

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

WM_PAINTでBeginPaintで得たデバイスコンテキストに直接描画しても「描画APIを呼んだ瞬間だけ」しか描画されません。 しかもWM_PAINTイベントは「Windows本体が再描画を必要と認めた場合のみ」しか発生しません。 つまり「描画の方法も、描画するプログラムの記述位置も間違ってるので、最初の1回しか表示されない」のです。

noname#142813
質問者

補足

回答ありがとうございました。 どのように修正すればいいのでしょうか。 WM_PAINTを使用せず、記述しないといけないのでしょうか。 宜しくお願い致します。

関連するQ&A

  • ファイルパスの二回目の読み込み(API・C言語)

    ウィンドウから右クリックでファイルダイアログを開き、 ファイルパスを取得、ある操作をさせて ウィンドウ上に表示させると言うプログラムを、 C言語、コンパイラはBorland C++、Windows APIにて 作成しております。 そこで、一回目、右クリックしてパスを読み込み、 表示させる事には成功したのですが、 二回目、同じようにウィンドウ上で右クリックして、 パスを読み込むと、おかしな表示となってしまいます。 二回目も一回目と同じような表示にさせるにはどうしたら いいでしょうか。 アドバイス宜しくお願い致します。 ソースはこちらです。 http://onegaisimasune.web.fc2.com/main3.txt

  • うまく表示されない。(API・C言語)

    C言語でAPIのプログラミングを行っている者です。 ソースはこちらとなります。 http://onegaisimasune.web.fc2.com/main6.txt mux2.vはこちらです。 http://onegaisimasune.web.fc2.com/main5.txt そこで、二つ程今のとこバグがあり、 1つ目は何度かウィンドウ上で左クリックしていると、 23回目くらいの所でウィンドウ上の文字が消えてしまう、 と言う問題と、 2つめはウィンドウを画面の外に追い出すと ウィンドウ上の文字が消えてしまうというものです。 どこが問題なのか、ご指摘願います。 どうか宜しくお願い致します。

  • 不具合が発生(API・C言語)

    WINDOWS APIをc言語でプログラムしているものです。 こちらのプログラムを書いたのですが、 http://onegaisimasune.web.fc2.com/main8.txt 左クリックで線を引くのですが、 線を引いていると普通の文字は消えないのですが、 ある操作をした整数を表示させるようにすると、 その整数が変わってしまいます。 どうしたら直るのでしょうか。 宜しくお願い致します。

  • 四角形と線との関係(C言語・API)

    C言語にてWINDOWS APIのプログラミングをしています。 そこでちょっとわからないのですが、 このソースをご覧いただけますか。 http://onegaisimasune.web.fc2.com/main7.txt このソースは、ウィンドウ上に四角形があり、 また、クリックで線も引けるというものですが、 四角形の上から線を引くと、線が四角形の下に かぶさってしまいます。 何とか四角形の上に持ってくる方法はありませんでしょうか。 宜しくお願い致します。

  • C言語のオススメのコンパイラを教えてください

    C言語の勉強を始めようと思い、コンパイラを探しているのですが、どれが良いのかわっぱりわかりません。 Windows7で動作する、初心者向けのコンパイラをご存知でしたら教えて頂きたいです。 少し探してみたところ、Microsoft Visual Basic 2010 Expressは試してみたのですが強制終了してしまい、Borland C++ Compilerは現在は公開されていないようなので、それ以外でお願いします。

  • C++(API)で

    C++(API)でクライアント領域にボタンを貼り付けるところまではできるのですが・・・そのボタンを押すと新しいウィンドウを表示させるにはどうしたらよろしいのでしょうか?

  • ウィンドウを動かして端に追いやると文字が消える(API・C言語)

    C言語でWindows APIのプログラミングをしているものです。 プログラムができたのですが、ウィンドウを動かし、 端に追いやるとウィンドウ上の文字や図形が消えてしまいます。 なぜでしょうか・・・。 結構チェックはしたもののわからずじまいです。 アドバイスお願い致します。 こちらです。 http://onegaisimasune.web.fc2.com/main5.txt

  • Cドライブを右クリックするとフリーズする

    Windows7HomePremium64bit を使用しています パソコン起動後、特定のソフトが起動しなくなったので原因を調べる為に、インストール先のCドライブを右クリックした所、永遠砂時計で、どこをクリックしても無反応状態になりました。 仕方なく強制終了して立ち上げると、Windowsを起動していますのが画面でHDDランプが電源ボタンのように常時点灯しています。 更に仕方なく強制終了して立ち上げると、普通に立ち上がりました。 Cドライブを右クリックしてもきちんと反応します。 しかし、数回やっていると、同じような現象になります。 また、Cドライブを左クリックした場合、フリーズすることなくドライブ内のフォルダが表示出来ます。 なぜか右クリックした時だけです。 原因分かる方いましたらアドバイスお願いします。

  • 右クリックメニューでWord2013を表示させる

    Windows10 64bit HOME ver2004のバグなのかどうか知りませんが、デスクトップ→マウス右クリック→新規作成でExcel2013しか表示されません。以前はWord2013も表示されていたのですが。メニューから辿ると面倒ですがWord2013のファイルは新規作成可能です。右クリック→新規作成にWord2013を表示させる方法を教えてください。

  • 右クリック

    windows7です。ファイル、フォルダの右クリックで結果表示まで時間がかかります。 PC立ち上げ最初の右クリックした場合のみ時間かかり二回目以降は時間かかりません。 何故でしょうか?

専門家に質問してみよう