-2

新しい質問を追加することは許可されていないため、この質問を編集しています。

私はこのプログラムが素晴らしい印刷をしているのを見つけましたが、それがどのように機能するのか理解できません. その背後にあるロジックを理解するのを手伝ってください。

#include <stdio.h>
int main()
{
   int a,b,c;
   int count = 1;
   for (b=c=10; a="- FIGURE?, UMKC,XYZHello Folks,\
                   TFy!QJu ROo TNn(ROo)SLq SLq ULo+\
                   UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\
                   NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\
                   HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\
                   T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\
                   Hq!WFs XDt!" [b++ +21]; )
         for(; a-- > 64 ; )
              putchar (( ++c == 'Z') ? c = c /9 : 33^b&1);
  return 0;
}

出力スクリーンショットは

ここに画像の説明を入力

4

2 に答える 2

1

Tab キーは通常、あるコントロールから別のコントロールにフォーカスを移動するために使用されるため、ダイアログ マネージャーによって飲み込まれます (つまり、内部メッセージ ループの一部として関数が呼び出すIsDialogMessage呼び出しDialogBoxは、Tab キーの押下を除外し、通過させません)。ダイアログ プロシージャに)。

これを回避する方法はいくつか考えられますが、タブには Windows で既によく知られた明確な意味があるため、ダイアログを開く/閉じるには別のキーを選択することをお勧めします。

于 2013-03-05T10:23:41.103 に答える
0

それが述べているmsdnの「EndDialog」の説明を読んでください:

EndDialogは、ダイアログボックスをすぐに破棄しません。代わりに、フラグを設定し、ダイアログボックスプロシージャがシステムに制御を戻すことができるようにします。システムは、アプリケーションキューから次のメッセージを取得しようとする前に、フラグをチェックします。フラグが設定されている場合、システムはメッセージループを終了し、ダイアログボックスを破棄し、nResultの値をダイアログボックスを作成した関数からの戻り値として使用します。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms645472%28v=vs.85%29.aspx

于 2013-03-05T11:44:39.063 に答える