是不是只有动态创建控件才能改变它的风格?一、我发现,用对话框中添加的资源控件,比如IDC_Button1,把它关联到指定的对象CmyButton,发现无法在CmyButton中修改资源控件IDC_Button1的风格,好像在对话框对象中也无法修改资源控件IDC_Button1的风格。二、在CmyButton对象中改写OnMouseMove消息处理函数,内容如下:
void CmyButton::OnMouseMove(UINT nFlags, CPoint point)
{
HCURSOR mycursor =AfxGetApp()->LoadCursor(IDC_CURSOR1);
SetCursor(mycursor);
CDialog::OnMouseMove(nFlags, point);
}
可是发现当把鼠标放到资源控件IDC_Button1上时鼠标的光标没有改变,为什么?
void CmyButton::OnMouseMove(UINT nFlags, CPoint point)
{
HCURSOR mycursor =AfxGetApp()->LoadCursor(IDC_CURSOR1);
SetCursor(mycursor);
CDialog::OnMouseMove(nFlags, point);
}
可是发现当把鼠标放到资源控件IDC_Button1上时鼠标的光标没有改变,为什么?
还是不行!!!
2。CButton类的SetCursor函数并浍 设置鼠标的形状,而是设置按钮的图标。所以要用全局函数::SetCursor.
{
// 设置光标表示当前的操作
if (m_nOperation == OPERATION_1)
::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_CROSS));
else if (m_nOperation == OPERATION_2)
::SetCursor(AfxGetApp()->LoadStandardCursor( ??? ));
else // 普通光标指针
::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_ARROW));
}
二、我试了::SetCursor(...);可以改了,为什么用CButton类的SetCursor函数却改不了,为什么?
如 CButton m_But 换成 CMyButton m_But
如 CButton m_But 换成 CMyButton m_But
++
void CMyButton::OnMouseMove(UINT nFlags, CPoint point)
{
CButton::OnMouseMove(nFlags, point);
::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
}
注意的是SetCursor函数一定要用全局的即加::否则是无法实现的