void SuperbikeControl::GetChildWindow(CWnd *cwnd)
{
CWnd *wnd = cwnd->GetWindow (GW_CHILD);
if (wnd != NULL)
{
wnd->PostMessageW (WM_KEYDOWN, VK_ESCAPE, 0);
Sleep(50);
wnd->PostMessageW (WM_KEYUP, VK_ESCAPE, 0);
PlaySound(_T("sound\\bell.wav"), NULL, SND_FILENAME | SND_ASYNC);
Sleep(1000);
GetChildWindow(wnd);
}
else
{
wnd = cwnd->GetWindow (GW_HWNDNEXT);
if (wnd != NULL)
{
wnd->PostMessageW (WM_KEYDOWN, VK_ESCAPE, 0);
Sleep(50);
wnd->PostMessageW (WM_KEYUP, VK_ESCAPE, 0);
PlaySound(_T("sound\\bell.wav"), NULL, SND_FILENAME | SND_ASYNC);
Sleep(1000);
GetChildWindow(wnd);
}
}
}
{
CWnd *wnd = cwnd->GetWindow (GW_CHILD);
if (wnd != NULL)
{
wnd->PostMessageW (WM_KEYDOWN, VK_ESCAPE, 0);
Sleep(50);
wnd->PostMessageW (WM_KEYUP, VK_ESCAPE, 0);
PlaySound(_T("sound\\bell.wav"), NULL, SND_FILENAME | SND_ASYNC);
Sleep(1000);
GetChildWindow(wnd);
}
else
{
wnd = cwnd->GetWindow (GW_HWNDNEXT);
if (wnd != NULL)
{
wnd->PostMessageW (WM_KEYDOWN, VK_ESCAPE, 0);
Sleep(50);
wnd->PostMessageW (WM_KEYUP, VK_ESCAPE, 0);
PlaySound(_T("sound\\bell.wav"), NULL, SND_FILENAME | SND_ASYNC);
Sleep(1000);
GetChildWindow(wnd);
}
}
}
本文探讨了超级摩托车控制系统的窗口遍历机制,通过使用CWnd类的GetWindow方法,实现对子窗口的查找并进行特定操作,如发送键盘事件、播放声音等。详细介绍了遍历过程中的条件判断和消息处理逻辑。
1259

被折叠的 条评论
为什么被折叠?



