cocos2dx 在windows上实现键盘输入(2)

来源:未知 责任编辑:责任编辑 发表时间:2013-12-18 11:33 点击:

p> 

p>windows sdk 键盘输入:

p>因为大多数的PC只有一个键盘,所以所有运行中的WINDOWS程序必须共用它。WINDOWS 将负责把击键消息送到具有输入焦点的那个应用程序中去。尽管屏幕上可能同时有几个应用程序窗口,但一个时刻仅有一个窗口有输入焦点。有输入焦点的那个应用程序的标题条总是高亮度显示的。 实际上您可以从两个角度来看键盘消息:一是您可以把它看成是一大堆的按键消息的集合,在这种情况下,当您按下一个键时,WINDOWS就会发送一个WM_KEYDOWN给有输入焦点的那个应用程序,提醒它有一个键被按下。当您释放键时,WINDOWS又会发送一个WM_KYEUP消息,告诉有一个键被释放。您把每一个键当成是一个按钮;另一种情况是:您可以把键盘看成是字符输入设备。当您按下“a”键时,WINDOWS发送一个WM_CHAR消息给有输入焦点的应用程序,告诉它“a”键被按下。实际上WINDOWS 内部发送WM_KEYDOWN和WWM_KEYUP消息给有输入焦点的应用程序,而这些消息将通过调用TranslateMessage翻译成WM_CHAR消息。WINDOWS窗口过程函数将决定是否处理所收到的消息,一般说来您不大会去处理WM_KEYDOWN、WM_KEYUP消息,在消息循环中TranslateMessage函数会把上述消息转换成WM_CHAR消息。在我们的课程中将只处理WM_CHAR。

p>例子: (见光盘FirstWindow4)

p>#include "Windows.h"

p>#include "tchar.h"

p> 

p>HWND hWinMain;

p>TCHAR szClassName[] = _T("MyClass");

p>TCHAR szCaptionMain[] = _T("My First Window!");

p>TCHAR FontName[] = _T("script");

p>WNDCLASSEX stdWndClass;

p>WPARAM keyChar = 0x20; //0x20是空格的ascii码,保证没有按键的时候程序正常显示。

p>LRESULT CALLBACK ProcWinMain(   HWND hWnd, 

p>                       UINT Msg, 

p>                       WPARAM wParam, 

p>                       LPARAM lParam 

p>)

p>{

p>    PAINTSTRUCT stPs;

p>    HDC hDC;

p>    HFONT hFont,hOldFont;

p>    switch(Msg)

p>    {

p>        case WM_PAINT:

p>        {

p>            hDC = BeginPaint(hWnd,&stPs);

p>            hFont = CreateFont(24,16,0,0,400,0,0,0,OEM_CHARSET,OUT_DEFAULT_PRECIS,

p>                CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_SCRIPT,FontName);

p> 

p>            hOldFont = (HFONT)SelectObject(hDC,hFont);

p>            SetTextColor(hDC,RGB(200,200,50));

p>            SetBkColor(hDC,RGB(0,0,255));

p>            TextOut(hDC,0,0,(char *)&keyChar,1);

p>            SelectObject(hDC,hOldFont);

p>            EndPaint(hWnd,&stPs);

p>        }

p>        break;

p> 

p>        case WM_CHAR:
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • cocos2d-x学习笔记(19)--label 、label atlas
  • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
  • Cocos2d-x学习(一):HelloWorld
  • cocos2dx在xcode下开发,编译到android上(2)
  • cocos2d 设置屏幕默认方向
  • Cocos2d-x 2.0 之 Actions “三板斧” 之一
  • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
  • cocos2d-x学习笔记(18)--游戏打包(windows平台)
  • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1