高手新手都来吧 ---WinCE 当鼠标移动到按钮上,按钮变亮或者切换图片

wo_shi_zhong 2010-08-13 11:23:44
我导入了三张 bmp 格式的图片,三张图片分别代表按钮不同状态下的颜色。
第一张用做按钮正常状态下的图片;
第二张是当鼠标移动到按钮时候显示的图片移开后恢复原来的正常的图片(这里难道我了问题,)。
第三张是当按钮按下的图片(已实现)
问:代码该如何实现当鼠标移动到按钮上时改变按钮的背景色啊?

开发环境是:Embedded VC++ 4.0
新手菜鸟,刚学习C++ 。希望大家给的答案详细点或者贴些代码出来。给个下载链接最好。

在线等..................
哪位高手有源码最好啦,可以发给俺的邮箱:zhchongyao@126.com 感激不尽!再次说声谢谢!!!

谢谢!
...全文
291 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
楼主看看下面代码是否可行
POINT p;
GetCursorPos(&p);
CWnd *hwnd;
hwnd=WindowFromPoint(p); //检索窗口中包含指定的点;点必须指定屏幕坐标在屏幕上的一个点。
CWnd *hwnd2=GetDlgItem(IDC_BUTTON_CONNECT);
if (hwnd2 == hwnd)//如果鼠标在按钮上
{
if (GetFocus()!=hwnd2)//如果按钮无焦点,那么设置焦点
hwnd2->SetFocus() ;
}
else//如果鼠标不在按钮上;
{
if (GetFocus() == hwnd2 )//如果按钮有焦点,那么去焦点;
GetDlgItem(IDC_RSLIST)->SetFocus();
}
ezhong0812 2010-08-18
  • 打赏
  • 举报
回复
用CBitmapButton类实现
typedef struct _stBITMAPBUTTONType{
TCHAR m_Name[20];
TCHAR m_NameFocus[20];
TCHAR m_DisplayName[20];
int m_ID;
}stBITMAPBUTTONType,*pstBITMAPBUTTONType;

CBitmapButton *pcBMButton;
pcBMButton=new CBitmapButton;

stBITMAPBUTTONType stMainMenuBMBtn[]=
{
{
L"HUP" , //导入图片后在资源中将图片ID改为"HUP"等名字,要带引号
L"HUPF" ,
L"HUP",
IDC_BUTTON1
},
{
L"HDOWN" ,
L"HDOWNF" ,
L"HDOWN" ,
IDC_BUTTON2
},
};
CRect cMenuIcon[2];
cMenuIcon[0].left=450; cMenuIcon[0].top=60;cMenuIcon[0].right=500;cMenuIcon[0].bottom=140;//按钮位置和大小
pcBMButton[0].Create(stMainMenuBMBtn[0].m_Name,WS_CHILD|WS_VISIBLE|BS_OWNERDRAW|WS_TABSTOP,cMenuIcon[0],this,stMainMenuBMBtn[0].m_ID);
pcBMButton[0].LoadBitmaps(stMainMenuBMBtn[0].m_Name,stMainMenuBMBtn[0].m_NameFocus,stMainMenuBMBtn[0].m_Name,NULL);
GARY 2010-08-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 aaa_tnt 的回复:]
“鼠标没有按下的时候是没有 MouseMove消息的”
这句话,不正确吧?

他说的鼠标,应该是指的“触摸屏”,没按下当然不能相应MouseMove。
[/Quote]
嗯。楼主最好也阐明自己用的是鼠标,还是触摸屏。
两者是不同的。
Ei 2010-08-16
  • 打赏
  • 举报
回复
“鼠标没有按下的时候是没有 MouseMove消息的”
这句话,不正确吧?

他说的鼠标,应该是指的“触摸屏”,没按下当然不能相应MouseMove。
GARY 2010-08-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 reallyu 的回复:]
不可能
这个要支持 MouseHover 消息才行
鼠标没有按下的时候是没有 MouseMove消息的
很遗憾 wince 不支持 MouseHover
[/Quote]
“鼠标没有按下的时候是没有 MouseMove消息的”
这句话,不正确吧?

“很遗憾 wince 不支持 MouseHover”
这个是有办法可以解决的。
GARY 2010-08-16
  • 打赏
  • 举报
回复
“问:代码该如何实现当鼠标移动到按钮上时改变按钮的背景色啊?”
下面是我以前搞这个的时候,写过的几篇日记,虽然写的粗糙,但貌似楼主的问题可以从中找到答案。

MFC下按钮自绘的实现
http://blog.csdn.net/joyzml/archive/2010/07/20/5748615.aspx
http://blog.csdn.net/joyzml/archive/2010/07/20/5749480.aspx
http://blog.csdn.net/joyzml/archive/2010/07/20/5750153.aspx
http://blog.csdn.net/joyzml/archive/2010/07/21/5752682.aspx
huchishihao 2010-08-16
  • 打赏
  • 举报
回复
这个我做过
91program 2010-08-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wolfmvp 的回复:]
楼主,可以考虑自绘按钮啦,网上有相关的参考:CButtonST
[/Quote]

我的建议,不要用控件,直接在窗体上绘制,想要什么效果都好弄。
wolfmvp 2010-08-15
  • 打赏
  • 举报
回复
楼主,可以考虑自绘按钮啦,网上有相关的参考:CButtonST
91program 2010-08-13
  • 打赏
  • 举报
回复
处理Mouse Move 消息
fcc250513166 2010-08-13
  • 打赏
  • 举报
回复
这个你去看看孙鑫老师vc++的视屏里有讲到啊 大致的方向应该是捕捉鼠标移动的消息
我也刚学 帮你顶下
lan120576664 2010-08-13
  • 打赏
  • 举报
回复
处理Mouse Move 消息
比较坐标与button的位置,然后进行要求处理
Reallyu 2010-08-13
  • 打赏
  • 举报
回复
不可能
这个要支持 MouseHover 消息才行
鼠标没有按下的时候是没有 MouseMove消息的
很遗憾 wince 不支持 MouseHover

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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