【发布时间】:2013-10-09 05:28:38
【问题描述】:
我正在创建一个 win32 应用程序并在我的 WM_CREATE 开关案例中初始化我的状态栏宽度变量。
case WM_CREATE:
{
int statwidths[] = { 200, -1 };
}
break;
我想在我的 WM_SIZE 开关盒中访问 statwidths[0],因为该数字将用于确定我的程序中其余窗口的大小。
case WM_SIZE:
{
int OpenDocumentWidth = statwidths[ 0 ];
}
break;
有没有办法做到这一点?它们都在同一个文件的同一个 switch 语句中。
【问题讨论】:
-
不,您不能使用完全不同范围的变量。您必须将其移出。
-
... 这可能对你没有什么好处(除了允许它编译之外),除非你也让它
static。它的值不会在 Windows 消息之间保留,除非你把它放在你的 WndProc 中持久的存储中。 -
这就是我的想法,但我不确定。我试着搜索了大约一个小时,然后在这里试了一下。看看是否有一些我不知道的后退功能。它会让我的程序变得更容易哈哈。
-
继续向上移动 [N] 个作用域,直到所有需要访问该变量的代码都落在同一个(更全局的)作用域内。
-
我只是在所有函数之外创建了一个全局变量,然后将硬编码 200 更改为该变量
标签: c++ winapi variables switch-statement case