我在跟着《windows 程序设计》学习编写API程序。当我试着往我的程序里面添加 accelerator时,怎么添加都不成功,请API高手指点。如果是劝我改做MFC或者灌水者请回避。这个程序是属于边学习边添加而做出来的,所以命名和规划免不了显得杂乱无章,如果是来指点我代码规范的高手,也请与上面的高手一起回避。

解决方案 »

  1.   

    没有像你这样用加速键的,改下:
    ///***************
    hAccel=LoadAccelerators(hInstance,(LPCTSTR)IDR_MG2_ACCEL);
    if(hAccel==NULL)
    MessageBox(hWnd,"快捷键载入错误","错误信息",MB_OK|MB_ICONSTOP);
    //*************************************
    while(!done) // 保持循环直到 done=TRUE 
    {
    if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))   //有消息在等待吗?
    {
               if(!TranslateAccelerator(hWnd,hAccel,&msg)) 
       {
     if (msg.message==WM_QUIT) //收到退出消息?
     { 
       done=TRUE;  // 是,则done=TRUE
     } 
     else  // 不是,处理窗口消息
     {
    TranslateMessage(&msg);  // 翻译消息
    DispatchMessage(&msg);  // 发送消息
     }
       }

    else  // 如果没有消息
    {
    /*绘制场景。监视ESC键和来自DrawGLScene()的退出消息 */
    if (active)  // 程序激活的么?

       if (KeyPress[VK_ESCAPE])  // ESC 按下了么?
       { 
      done=TRUE;  // ESC 发出退出信号
       } 
       else  // 不是退出的时候,刷新屏幕
       { 
                      
                                .....