关于孙鑫VC++6.0深入讲解 按上enter键改变输入焦点 的有关问题

关于孙鑫VC++6.0深入讲解 按下enter键改变输入焦点 的问题
最近在看孙鑫老师的mfc教程,受益颇多,看到改变输入焦点问题时,遇到一些问题。
在孙鑫老师的书的 第259页到262页,在OnOK 函数中,使用到下面三个方法用来在用户按下enter键时改变焦点,但是只有最后一个可以成功。
在此我列出以下三种方法
1.GetFocus()->GetNextWindow()->SetFocus();
2.GetFocus()->GetWindow(GW_HWNDNEXT)->SetFocus();
3.GetNextDlgTabItem(GetFocus())->SetFocus();
但是我发现,前两种方法都是在按下几次enter方法之后才会崩溃,小弟在此想问的是为什么在按下几次之后才会崩溃?崩溃的原因是否是因为GetWindow和GetNextWindow返回了空指针?? 为什么前两个方法在此并不适用呢??

------解决方案--------------------
你可以Debug下看看GetWindow/GetNextWindow应该是返回的CWnd*指针为NULL,导致程序Crash。
------解决方案--------------------
多按几次Enter键之后,GetNextWindow到最后一个控件之后,返回了NULL;
GetNextWindow
If the function succeeds, the return value is a handle to the next (or previous) window. If there is no next (or previous) window, the return value is NULL
------解决方案--------------------
每次按Enter键,GetNextWindow都得到下一个窗口的handle,当多次按enter后,返回值为空,也就是NULL。。。