我将介绍基本的win32对话框程序的许多示例。他们似乎采取了这种基本模式。
class Person
{
char Name[63];
int Age;
};
BOOL CALLBACK EditDlgProc ( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static Person* person;
switch(uMsg)
{
case WM_INITDIALOG:
person = (Person*)lParam;
return FALSE;
case WM_COMMAND:
.....
}
return FALSE;
}
我想知道为什么要让人静态?
答案 0 :(得分:1)
在函数person
的调用之间保持指针EditDlgProc()
的状态。
确保:
这是为了提高效率吗?
是的,可能。在不了解设计考虑因素的情况下很难说。
这是分享吗?
没有。
请注意,static
变量的范围仅限于此情况下的函数,因此无法共享。