-1

キーの押下を検出し、対応する文字をウィンドウに描画するプログラムを作成しようとしています。すべて正常に動作しますが、一度しか描画されません...別のキーを押しても何も起こりません。

case WM_KEYDOWN:
{ 
   if (GetKeyState(0x41))
   {
      pCtrl->Paint (65);
   }    

Paint 関数は、文字を描画する Char 関数を呼び出します。::Textout 理解できないのは、複数回描画しない理由だけです

4

1 に答える 1

5

ペイントするコードがないと答えるのは難しいですが、問題に間違ってアプローチしていると思います。Win32 アプリケーションは、WM_PAINT メッセージを処理するときに表示領域のみを変更する必要があります。WM_KEYDOWN メッセージが受信されたら、InvalidateRect() を使用して表示を無効にし、アプリケーションが再描画できるようにする必要があります。避けられないちらつきを取り除くために、WM_KEYDOWN ハンドラーは変更の種類を記録し、WM_PAINT ハンドラーはその文字が表示されている表示のみを更新することができます。

于 2012-09-01T14:08:50.957 に答える