CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

WIN32 API编程中,添加按钮后,就不再相应键盘消息,为什么?

楼主szwpc(风色鸟)2005-06-21 23:40:06 在 VC/MFC / 界面 提问

参照Charles   Petzold的书编写WIN32   API程序  
  我编写的是单文档程序。有键盘控制。为什么在我添加了按钮过后,并在程序运行中按了那个按钮,键盘消息就不在相应了?  
   
  …………………………………………………………  
   
  LRESULT   CALLBACK   WndProc   (……)  
  {  
            switch   (message)  
            {  
  …………………………………………………………  
            case   WM_CREATE:  
    renew   =   CreateWindow(TEXT("button"),TEXT("New   Game"),  
    WS_CHILD   |   WS_VISIBLE   |   BS_DEFPUSHBUTTON,  
    baseX   +   17   *   grid,   baseY   +   grid,  
    100,   30,  
    hwnd,   (HMENU)ID_RENEW,  
    ((LPCREATESTRUCT)lParam)   ->   hInstance,   NULL);  
    return   0   ;  
  ……………………………………………………  
  ……………………………………………………  
            case   WM_KEYDOWN:  
    switch   (wParam)  
    {  
    case   VK_UP:  
    ……   ;  
    break   ;  
    case   VK_DOWN:  
    ……   ;  
    break   ;  
  …………   ;  
  …………   ;  
  }  
  return   0   ;  
  ……………………………………………………  
  ……………………………………………………  
            case   WM_DESTROY:  
                      PostQuitMessage   (0)   ;  
                      return   0   ;  
            }  
            return   DefWindowProc   (……)   ;  
  }  
   
  程序的大致的关键处结构就如上(其他地方没有错,就不写出来了),为什么我在WM_CREATE:中添加了CreateWindow(),添加一个按钮后,下面的WM_KEYDOWN就不再被相应了?  
   
  急!解决就给分。请大家帮忙啊! 问题点数:50、回复次数:5Top

1 楼xing_xing_xing(哈哈)回复于 2005-06-21 23:44:07 得分 30

点击按钮后焦点在按钮上,就不会响应主窗口的键盘消息了Top

2 楼72193(夺命飞刀)回复于 2005-06-22 08:17:29 得分 15

没错,焦点变了而已。Top

3 楼pipilupzj(皮皮鲁)回复于 2005-06-22 08:19:42 得分 5

case   WM_KEYDOWN:  
    switch   (wParam)  
    {  
    case   VK_UP:  
    ……   ;  
    break   ;  
    case   VK_DOWN:  
    ……   ;  
    break   ;  
  …………   ;  
  …………   ;  
  }  
  return   0   ;  
  是这段代码有问题  
  你直接return   0,自然把所有的键盘消息给拦截了  
  应该将return   0   改为break,将消息传给DefWindowProc   (……)   ;Top

4 楼szwpc(风色鸟)回复于 2005-06-22 10:07:14 得分 0

那么如何在按完按钮后,再将焦点转回到客户区啊?  
  谢谢Top

5 楼szwpc(风色鸟)回复于 2005-06-22 10:18:16 得分 0

谢谢各位!我明白了!Top

相关问题

  • API编程如何用使用位图按钮?谢谢
  • 怎么用api来编程点击一个其他窗口的按钮啊?
  • API 编程
  • 谁有用vc的api的编程方法编写的键盘监控程序的原码供学习一下?
  • 求助:如何让计算机的键盘鼠标不起作用一段时间,用编程序。最好使用API函数解决。
  • 求解 Socket API 编程
  • 关于API和MFC编程
  • windows的api编程改错?
  • MFC编程,如何使隐藏的按钮有效?
  • 怎么编程去点击别的程序的按钮???

关键词

  • win32 api
  • 键盘
  • 消息
  • 按钮
  • 添加
  • 键盘消息
  • 相应
  • vk
  • 程序
  • keydown

得分解答快速导航

  • 帖主:szwpc
  • xing_xing_xing
  • 72193
  • pipilupzj

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo