当我推进我的第一个 winapi UI 时,我发现自己在我的 WinMain 文件中创建了大量令人不舒服的 HWND 变量堆栈:
HWND foo;
HWND bar;
HWND baz;
HWND etc;
int WINAPI WinMain(...) {}
当然,这些变量在文件其余部分的函数中使用 - 例如消息循环 - 因此它们必须是可访问的。
对于我相对较小的 UI,我将堆叠大约 30 个 HWND,以便它们处于可见范围内。这让我非常怀疑我做错了。
这是应该发生的事情,还是有更实用的方法来组织它?
最佳答案
您有几种解决方案,具体取决于您的程序。
- 您可以将所有这些句柄放在一个或多个容器中,例如
std::vector
。 - 您可以像克里斯建议的那样映射它们。
- 如果您的程序变大,您可能希望将它们组织成逻辑单元。例如,如果这些窗口中的 15 个用于一半的逻辑,另外 15 个用于另一半(比如选项卡内的控件),那么您可能希望以某种方式对这些控件进行分组(文件、类,任何最符合逻辑的方式) ).
关于c++ - WinAPI - 如何组织大量的 HWND 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13243343/