帮忙解决一下,谢谢!
while( GetMessage(&msg,NULL,0,0) )/**/
{
if( !TranslateAccelerator(hMainWnd,hAccTable,&msg) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
解释一下吧。
[解决办法]
TranslateAccelerator函数确认存放在msg消息结构中的消息是否为键盘消息。如果是,该函数将找寻句柄为hAccel的快捷键表。如果找到了一个符合的,则呼叫句柄为hwnd的窗口消息处理程序。如果快捷键ID与系统菜单的菜单项一致,则消息就是WM_SYSCOMMAND;否则,消息为WM_COMMAND。
当TranslateAccelerator传回时,如果消息已经被转换(并且已经被发送给窗口消息处理程序),那么传回值为非零;否则,传回值为0。如果TranslateAccelerator传回一个非零值,则不呼叫TranslateMessage和DispatchMessage,而是经过循环回到GetMessage呼叫中。
< <windows程序设计> > 如是说: