【发布时间】:2014-03-05 03:50:23
【问题描述】:
我的问题很简单,也不是很重要。
我开始学习编写 Win32 应用程序。当我阅读其他人的代码时,我经常看到他们将
PAINTSTRUCT ps;放在WndProc的switch 语句之前。他们为什么不把这个放进箱子WM_PAINT?他们为ps分配内存然后不使用?我总是看到
PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps);。但是我多次检查了ps.hdc的值,ps.hdc和hdc的值每次都相等。定义hdc是否还有其他原因,而不仅仅是可读性或编写更少的代码?
(很抱歉,如果我的英语不好并且问题不在这个社区的水平)
【问题讨论】:
-
他们通常只是在 WndProc 中将其设为静态,因此它只分配一次,而不是每次调用 switch 语句时。此外,由于 HDC 是一种指针类型,如果在 case 语句中声明,它会导致 case 语句被丢弃,因此它通常也在 WndProc 而不是 switch 语句中定义。否则,您的案例陈述将需要括号。除此之外,它只是可读性。