-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 键通常会被对话框管理器吞下,因为它用于将焦点从一个控件移动到另一个控件(即IsDialogMessageDialogBox函数作为其内部消息循环的一部分调用的调用将过滤掉 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 回答