| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 989 人关注过本帖
标题:新手上路,响应鼠标事件和键盘事件遇到问题....
只看楼主 加入收藏
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
结帖率:95%
收藏
已结贴  问题点数:20 回复次数:4 
新手上路,响应鼠标事件和键盘事件遇到问题....
程序代码:
case WM_CHAR:
        {
            char szChar[20];
            wsprintf(szChar, "char is %d", lparam);
            MessageBox(hwnd, LPCWSTR(szChar), _T("按键"), 0);
            break;
        }
    case WM_LBUTTONDOWN:
        {
            POINT point;
            GetCursorPos(&point);
            hdc = GetDC(hwnd);
            TextOut(hdc, point.x, point.y, _T("x"), 1);
            break;
        }
问题一,我想按下什么,就弹出一个字符显示框...可是对于宽字符的处理不会,弄了半天,什么w s t一大堆,整出来也是乱码....还有就是知识资源匮乏,不知道这个按键为什么是放在LPARAM中....
问题二,我好容易从网上搜到了获取鼠标坐标的方法,但是显示x的地方和鼠标地方不同....
总之是好艰难,好多想用的函数,连函数名都不知道,无法查,查了也不见得理解....
搜索更多相关主题的帖子: 键盘 鼠标 
2010-09-09 00:27
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:0 
第二个问题造成的原因我清楚了,因为前后针对的原点不同...我用获取桌面实例作为原点解决了,不知道这样好不好?
    case WM_LBUTTONDOWN:
        {
            POINT point;
            GetCursorPos(&point);
            HWND hwnd1 = GetDesktopWindow();
            hdc = GetDC(hwnd1);
            TextOut(hdc, point.x, point.y, _T("x"), 1);
            break;
        }
2010-09-09 00:43
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
收藏
得分:20 
1、你可以用MultiByteToWideChar把一个ascii字串转为一个unicode字串。WideCharToMultiByte反之。
2、对于windows系统除了特殊目的,你最好还是获得自己的窗口坐标为好。你可以用ScreenToClient或ClientToScreen轻易实现屏幕坐标与窗口坐标两者的转换。



举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-09-09 09:11
最近不在
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:204
专家分:842
注 册:2010-2-28
收藏
得分:0 
第二个弄明白了...
第一个虽然输出了字符,到后面多了一大堆乱码的东西...还有上面的lparam弄错了,是wparam...
程序代码:
case WM_CHAR:
        {
            char szChar[128];
            sprintf(szChar, "char is %d", wparam);
            TCHAR szTChar[128];
            MultiByteToWideChar(CP_ACP, MB_USEGLYPHCHARS, szChar, strlen(szChar), szTChar, strlen(szChar)*2);
            MessageBox(hwnd, szTChar, _T("按键"), 0);
            break;
        }

 
2010-09-09 12:40
windyfzz
Rank: 2
等 级:禁止访问
帖 子:90
专家分:12
注 册:2010-7-25
收藏
得分:0 
在你的程序中wParam附带参数保存的是字符的ASCII码
2010-09-12 21:44
快速回复:新手上路,响应鼠标事件和键盘事件遇到问题....
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044275 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved