首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

帮忙解决一下,多谢

2012-02-27 
帮忙解决一下,谢谢!while(GetMessage(&msg,NULL,0,0))/**/{if(!TranslateAccelerator(hMainWnd,hAccTable,

帮忙解决一下,谢谢!
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程序设计> > 如是说:

热点排行