鼠标到位图按钮变成手的形状怎么做?
有六个位图按钮,ID_1,ID_2,ID_3,ID_4,ID_5,ID_6,把鼠标移到位图控键变成手的形状怎么做? 问题点数:20、回复次数:7Top
1 楼jackind(steven)回复于 2005-11-10 09:53:09 得分 0
还有用下面的方法鼠标悬浮在位图按钮上没有效果!!
(1)、在对话框适当位置添加按钮,为其"Caption"设置一个值,假设为"MYBUTTON",为其指定ID号,假设为"IDC_MYBUTTON",并设定“Owner Draw”属性
(2)、做4个位图,分别用于当按钮处在“UP”、“DOWN”、“FOCUS”、“DISABLE”时显示,其ID分别为"MYBUTTONU"、"MYBUTTOND"、"MYBUTTONF"、"MYBUTTONX",注意,不要写成MYBUTTONU、MYBUTTOND、MYBUTTONF、MYBUTTONX;
(3)、在对话框类的结构中(.h)加入如下代码:
CBitmapButton m_wndBitmapButton;
(4)、在对话框的初始函数(OnInitDialog)中加入如下代码:
m_wndBitmapButton.AutoLoad(IDC_MYBUTTON,this);Top
2 楼laiyiling(陌生人[MVP])回复于 2005-11-10 10:06:10 得分 3
处理WM_SETCURSOR消息Top
3 楼VxD1(Dump)回复于 2005-11-10 10:30:34 得分 2
SetClassLong()把字窗口的hCursor字段改成别Top
4 楼jackind(steven)回复于 2005-11-10 12:53:38 得分 0
有谁可以详细的总结一下吗?不仅可以为象我这样的菜鸟们提供帮助还有分拿,何乐不为呢?Top
5 楼lixiaosan(小三)回复于 2005-11-10 13:13:48 得分 10
CTest6Dlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
CRect rect;
CPoint ptCursor;
CWnd *pStatic1 = GetDlgItem(IDC_BUTTON);
#if(WINVER >= 0x0500)
#define IDC_HAND MAKEINTRESOURCE(32649)
#endif /* WINVER >= 0x0500 */
pStatic1->GetWindowRect(rect);
GetCursorPos(&ptCursor);
if(rect.PtInRect(ptCursor))
{
HICON hIconBang = AfxGetApp()->LoadCursor(IDC_HAND);
SetCursor(hIconBang);
return TRUE;
}
else
return CDialog::OnSetCursor (pWnd, nHitTest, message);
}
Top
6 楼jackind(steven)回复于 2005-11-10 15:10:04 得分 0
一个可以解决,六个按钮上都出现手的形状怎么写呢?Top
7 楼goodboyws(深夜不眠者(VCMVP))回复于 2005-11-10 15:15:41 得分 5
在OnCreate调用
SetClassLong(m_hWnd, GCL_HCURSOR, IDC_HAND);
六个都从同一个基类派生就可以了Top




