2012-04-13 8 views
0

私は(最終的には同じreturn 0またはWM_KEYUP)このメソッドを使用する場合WM_SIZEコマンドを取得することができません:自分自身でWM_KEYDOWNを処理するときに、自分のウィンドウにWM_SIZEコマンドが表示されないのはなぜですか?

case WM_KEYDOWN: { 
    keys[wParam] = 1; 
    return 0; 
} 

しかし、私はこれを使用する場合、それは私にWM_SIZEコマンドを与える:

case WM_KEYDOWN: { 
    keys[wParam] = 1; 
    break; 
} 

でした誰かがなぜこれが起こっているのか説明しています

+0

'switch'文全体を見ることができますか? – Thomas

+0

@トーマス、私は再びスイッチのステートメントを通過し、驚いたことに私は最後に '休憩 'のないステートメントを見つけ、それを修正しました!この全部のことも混乱しています。なぜなら、 'break'をいつ使うべきか、' return 0'や 'return 1'を使うべきかわかりません。追加した 'break'コマンドを' return 0'に置き換えたときに、このバグが再び現れました。 – Rookie

+0

なぜ 'WM_KEYDOWN'が' WM_SIZE'メッセージを生成するのか分かりません。 –

答えて

2

コード全体を見ることなく、私の推測では、ウィンドウが実際にキーストロークを処理し、それが必要とするものは何でも行動とらないようreturn文は、このようDefWindowProc()として、デフォルトのメッセージハンドラに渡されるからWM_KEYDOWNメッセージを妨げているということですWM_KEYUPおよびWM_SIZEメッセージを生成します。

関連する問題