问两个MFC在Win8平板上运行的问题

凌乱哥 2013-12-05 08:48:58
1.如何判断当前的运行环境是PC还是平板?
2.如何调用平板操作系统的输入键盘?注意是输入法键盘,不是屏幕键盘osk.exe
关于输入键盘,如果我的程序不是全屏运行的话倒是可以点一下任务栏上的直接弹出并使用,问题是我的程序可以设置成全屏显示,所以全屏的时候无法用上述方法实现。平板的输入键盘如图:
...全文
547 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
凌乱哥 2016-08-12
  • 打赏
  • 举报
回复
引用 24 楼 baidu_20178883 的回复:
请问,mfc程序移植到win8平板后,原来的右键弹出菜单功能失效了是怎么回事?长按没有响应!还请高手指点。
这个没有遇到过,要不你外接个鼠标试试,有可能是你用手指长按的位置不对,触屏可能会有一些误差
baidu_20178883 2016-08-12
  • 打赏
  • 举报
回复
请问,mfc程序移植到win8平板后,原来的右键弹出菜单功能失效了是怎么回事?长按没有响应!还请高手指点。
凌乱哥 2016-07-06
  • 打赏
  • 举报
回复
键盘找到了,路径是C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe
真相重于对错 2013-12-31
  • 打赏
  • 举报
回复
Use the Windows GetSystemMetricsAPI and pass in SM_TABLETPC as the value of the index. SM_TABLETPC is defined in Winuser.h. The value of SM_TABLETPC is 86.
linux小黄 2013-12-31
  • 打赏
  • 举报
回复
晕 我也在移植MFC程序到win8平板上 我想知道楼上移植的时候主要注意事项,我这里还没启动呢 ,只是让它简单的跑起来 ,除了界面部分 ,我觉得主要难点就是触控部分 这方面不知如何下手
真相重于对错 2013-12-31
  • 打赏
  • 举报
回复
引用 19 楼 dingxz105090 的回复:
[quote=引用 18 楼 hdt 的回复:] Use the Windows GetSystemMetricsAPI and pass in SM_TABLETPC as the value of the index. SM_TABLETPC is defined in Winuser.h. The value of SM_TABLETPC is 86.

int iIndex = GetSystemMetrics(SM_TABLETPC);
这样写?PC上的返回值是0啊,不知道平板上是多少,下次试试。。 这个函数只用过来取屏幕分辨率,敢问大侠上面那样写是什么目的?[/quote] GetSystemMetrics可不仅是用来取屏幕分辩率!
真相重于对错 2013-12-31
  • 打赏
  • 举报
回复
引用 20 楼 dingxz105090 的回复:
[quote=引用 17 楼 u010787522 的回复:] 晕 我也在移植MFC程序到win8平板上 我想知道楼上移植的时候主要注意事项,我这里还没启动呢 ,只是让它简单的跑起来 ,除了界面部分 ,我觉得主要难点就是触控部分 这方面不知如何下手
没什么特别的注意事项。 触控就如同鼠标一样的,差不多,请看6楼 唯一不同的是平板没有外接键盘,所以我才发了这个帖子[/quote] 手头没有win板,没法给你测试,以上我是查自msdn
凌乱哥 2013-12-31
  • 打赏
  • 举报
回复
引用 17 楼 u010787522 的回复:
晕 我也在移植MFC程序到win8平板上 我想知道楼上移植的时候主要注意事项,我这里还没启动呢 ,只是让它简单的跑起来 ,除了界面部分 ,我觉得主要难点就是触控部分 这方面不知如何下手
没什么特别的注意事项。 触控就如同鼠标一样的,差不多,请看6楼 唯一不同的是平板没有外接键盘,所以我才发了这个帖子
凌乱哥 2013-12-31
  • 打赏
  • 举报
回复
引用 18 楼 hdt 的回复:
Use the Windows GetSystemMetricsAPI and pass in SM_TABLETPC as the value of the index. SM_TABLETPC is defined in Winuser.h. The value of SM_TABLETPC is 86.

int iIndex = GetSystemMetrics(SM_TABLETPC);
这样写?PC上的返回值是0啊,不知道平板上是多少,下次试试。。 这个函数只用过来取屏幕分辨率,敢问大侠上面那样写是什么目的?
凌乱哥 2013-12-09
  • 打赏
  • 举报
回复
引用 11 楼 shen_wei 的回复:
GetSystemInfo(&siSysInfo); [quote=引用 13 楼 oyljerry 的回复:] 判断CPU是否为ARM是一个思路
GetSystemInfo在PC和平板上的结果几乎是一样的,我把的DWORD成员都列举出来了,就一个值不同 dwOemId: 0 wProcessorArchitecture: 0 wReserved: 0 dwPageSize: 4096 dwActiveProcessorMask: 15 dwNumberOfProcessors: 4 dwProcessorType: 586 dwAllocationGranularity: 65536 wProcessorLevel: 6 wProcessorRevision: 14857//平板的值是13569 网上说这个wProcessorRevision表示CPU版本 是否ARM只是针对WinCE的,安卓和Win8的不是ARM的类型?
凌乱哥 2013-12-09
  • 打赏
  • 举报
回复
引用 15 楼 stevenkoh 的回复:
ARM版本下能开发MFC程序?我没看错吧,有Win32 ARM版本的?
是平板,经验证后貌似不是ARM而是Intel
stevenkoh 2013-12-09
  • 打赏
  • 举报
回复
引用 13 楼 oyljerry 的回复:
判断CPU是否为ARM是一个思路
ARM版本下能开发MFC程序?我没看错吧,有Win32 ARM版本的?
oyljerry 2013-12-06
  • 打赏
  • 举报
回复
判断CPU是否为ARM是一个思路
shen_wei 2013-12-06
  • 打赏
  • 举报
回复
wProcessorArchitecture
The processor architecture of the installed operating system. This member can be one of the following values.


Value

Meaning

 PROCESSOR_ARCHITECTURE_AMD649 
x64 (AMD or Intel)
 
 PROCESSOR_ARCHITECTURE_ARMReserved 
ARM
 
 PROCESSOR_ARCHITECTURE_IA646 
Intel Itanium-based
 
 PROCESSOR_ARCHITECTURE_INTEL0 
x86
 
 PROCESSOR_ARCHITECTURE_UNKNOWN0xffff 
Unknown architecture.
 
shen_wei 2013-12-06
  • 打赏
  • 举报
回复
SYSTEM_INFO siSysInfo; GetSystemInfo(&siSysInfo); dwProcessorType An obsolete member that is retained for compatibility. Use the wProcessorArchitecture, wProcessorLevel, and wProcessorRevision members to determine the type of processor. PROCESSOR_INTEL_386 (386)PROCESSOR_INTEL_486 (486)PROCESSOR_INTEL_PENTIUM (586)PROCESSOR_INTEL_IA64 (2200)PROCESSOR_AMD_X8664 (8664)PROCESSOR_ARM (Reserved)
shen_wei 2013-12-06
  • 打赏
  • 举报
回复
那你要是判断这个,就难了吧,看微软给你开放定义了没有??
凌乱哥 2013-12-06
  • 打赏
  • 举报
回复
引用 7 楼 shen_wei 的回复:
一般单击输入都会触发的,你可以分别试试抓下消息看看! 系统的话,你可以GetVersionEx 试试看返回值
GetVersionEx只是获取操作系统吧,就算判断出是Win8,还是不能判断是PC还是平板
凌乱哥 2013-12-06
  • 打赏
  • 举报
回复
引用 3 楼 oyljerry 的回复:
你的程序有输入框的时候,用户点击,会自动触发输入法的吧
引用 7 楼 shen_wei 的回复:
一般单击输入都会触发的,你可以分别试试抓下消息看看! 系统的话,你可以GetVersionEx 试试看返回值
突然发现非全屏的时候也不会触发,按照我最初的描述,要自己去点一下任务栏的输入键盘图标才行
shen_wei 2013-12-06
  • 打赏
  • 举报
回复
一般单击输入都会触发的,你可以分别试试抓下消息看看! 系统的话,你可以GetVersionEx 试试看返回值
凌乱哥 2013-12-06
  • 打赏
  • 举报
回复
引用 4 楼 xiaoxiaoyu85 的回复:
表示不懂,MFC在平板上能用触摸屏吗?求知晓,呵呵。
能用啊,不好的地方就是鼠标消息跟PC的效果不太一样 比如按钮的Hover效果,PC下的Hover是圆角的边框,鼠标移开就没了。但是平板上要按下了按钮才有,而且然后会一直保持Hover状态直到失去焦点
加载更多回复(5)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧