好了继续往下讲,再往下就是下面一段代码(为表示区别就叫它代码一吧):
case WM_COMMAND:
if (lParam && LOWORD (wParam) == EDITID)
{
switch (HIWORD (wParam))
{
case EN_UPDATE :
bNeedSave = TRUE ;
return 0 ;
case EN_ERRSPACE :
case EN_MAXTEXT :
MessageBox (hwnd, TEXT ("Edit control out of space."),
szAppName, MB_OK | MB_ICONSTOP) ;
return 0 ;
}
这一段代码也很绕人,首先看if (lParam && LOWORD (wParam) == EDITID),它是在WM_COMMAND后面的,一提出WM_COMMAND,就有人想到是点击了菜单,然后再看到那个” EDITID“,很多人就以为这是点击了菜单栏上的确Edit选项,这么想就大错特错了,想想呀,如果是菜单发出的WM_COMMAND信号,那么其lParam是为0的,这时的if (lParam && LOWORD (wParam)