MFC开发Wince应用软件

羽毛乱发 2010-04-29 05:11:28
话说发了一个关于界面和逻辑的帖子,收益不少,可惜不能加分!

今天玩了一个小程序,添加了以前写的按钮类,仿真后发现WINCE不支持

LRESULT OnMouseLeave(WPARAM wparam, LPARAM lparam);
以及 LRESULT OnMouseHover(WPARAM wparam, LPARAM lparam) 这2个函数,

这个也算了,后来还发现,鼠标移动MouseMove也不支持,

调试发现,鼠标移动过程中没有进入这个消息里,所以,问下码友们,

是我仿真有问题,还是WINCE本来就不支持连最基本的MouseMove????

希望码友们多提意见,说说应该注意哪些事项,谢谢!《请灌水者手下留情,谢谢了》

哪些MFC支持的而WINCE不支持的消息,知道的希望留个笔影!


...全文
202 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
羽毛乱发 2010-05-04
  • 打赏
  • 举报
回复
结贴,应该是系统的缘故了。
羽毛乱发 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zhou1xp 的回复:]
恩,我是在按钮被点击的时候把它的rect整体上移一个单位,看起来就有按下的状态了
[/Quote]

呵呵,想实现鼠标移动就有的状态,好像实现不了了。

修改鼠标点击时候的状态,没有什么问题的,

我刚才用时钟控制了下,试试看行不行,结果还是不行,一定要鼠标点下才有消息,鼠标移动没有消息。
zhou1xp 2010-04-30
  • 打赏
  • 举报
回复
判断三态,
void CTagButton::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
// TODO: Add your code to draw the specified item
BOOL bIsPressed = (lpDIS->itemState & ODS_SELECTED);
BOOL bIsFocused = (lpDIS->itemState & ODS_FOCUS);
BOOL bIsDisabled = (lpDIS->itemState & ODS_DISABLED);
}
这个就可以了
zhou1xp 2010-04-30
  • 打赏
  • 举报
回复
恩,我是在按钮被点击的时候把它的rect整体上移一个单位,看起来就有按下的状态了
羽毛乱发 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zxdlms 的回复:]
最近也在写Mobile的程序,那个自绘按钮也是麻烦。我点击按钮的时候按钮不会发生变化,点击后再移动触摸笔,按钮点击样子才会绘制出来。但是如果我不是绑定一个按钮变量,而是直接在窗口中处理WM_DRAWITEM消息就正常。

可能由于Wince要支持触摸屏的关系,WM_MOUSEMOVE之类的消息不像桌面那样,毕竟得点了屏幕之后才能确定鼠标的位置。
[/Quote]

按钮自绘,肯定要用到WM_DRAWITEM的,这个消息到时进去的,
你现在是怎么处理的?
羽毛乱发 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zhou1xp 的回复:]
恩,楼主你的是触摸屏么,触摸屏是有这个问题,一般你的手点击的时候不要拖动就没上面问题
[/Quote]

是的,是触摸的,

但是我怎么实现按钮的3态呢,如果没有了MouseMove这个消息,用时钟么?
zhou1xp 2010-04-30
  • 打赏
  • 举报
回复
恩,楼主你的是触摸屏么,触摸屏是有这个问题,一般你的手点击的时候不要拖动就没上面问题
zxdlms 2010-04-30
  • 打赏
  • 举报
回复
最近也在写Mobile的程序,那个自绘按钮也是麻烦。我点击按钮的时候按钮不会发生变化,点击后再移动触摸笔,按钮点击样子才会绘制出来。但是如果我不是绑定一个按钮变量,而是直接在窗口中处理WM_DRAWITEM消息就正常。

可能由于Wince要支持触摸屏的关系,WM_MOUSEMOVE之类的消息不像桌面那样,毕竟得点了屏幕之后才能确定鼠标的位置。
webipstin 2010-04-30
  • 打赏
  • 举报
回复

重载 virtual BOOL PreTranslateMessage( MSG* pMsg );


拦截 WM_MOUSEMOVE 试试.
羽毛乱发 2010-04-30
  • 打赏
  • 举报
回复
说下,我是VS2005的MFC开发的
羽毛乱发 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yincheng01 的回复:]
是支持的,应该是你的仿真有问题
[/Quote]

我刚刚试了下,用真实设备试的,发现要鼠标点击一下(我是左键点击其它地方,按住左键,然后移动到按钮上面),才能触发MouseMove这个消息

而且是OnLButtonDown后,然后移动到按钮上面,就触发MouseMove的,为什么这样呢??

有大侠来解决下么??
尹成 2010-04-29
  • 打赏
  • 举报
回复
是支持的,应该是你的仿真有问题
羽毛乱发 2010-04-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 visualeleven 的回复:]
不支持的消息可参考MSDN
[/Quote]

我看MSDN里也是有这个消息的,汗死我了,怎么仿真起来就不可以呢。

按理说,这个也是最基本的消息么,肯定会支持的呀。。。。
现在想用时钟来控制按钮状态了,不知道在具体应用中,会不会有什么问题。。。。
Eleven 2010-04-29
  • 打赏
  • 举报
回复
不支持的消息可参考MSDN
Eleven 2010-04-29
  • 打赏
  • 举报
回复
WM_MOUSEMOVE应该是支持的
aa3000 2010-04-29
  • 打赏
  • 举报
回复
OnMouseMove 是支持的,

15,979

社区成员

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

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