是不是只有动态创建控件才能改变它的风格?一、我发现,用对话框中添加的资源控件,比如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上时鼠标的光标没有改变,为什么?

解决方案 »

  1.   

    我知道向 按钮发送 WM_SETCURSOR消息可以改变鼠标光标,可是我用的方法为什么不行呢?
      

  2.   

    把HCURSOR mycursor 放在全局变量中试试
      

  3.   

    试了,把HCURSOR mycursor 放在全局变量中了,
    还是不行!!!
      

  4.   

    1。无论是否是动态创建的控件,都能改变窗口风格,我己经试过了。
    2。CButton类的SetCursor函数并浍 设置鼠标的形状,而是设置按钮的图标。所以要用全局函数::SetCursor.
      

  5.   

    void CMyView::OnMouseMove(UINT nFlags, CPoint point)
    {
    // 设置光标表示当前的操作
    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));
    }
      

  6.   

    to:yndfcd(YNDFCD) 一、除了用 this->ModifyStyle(...); 就不能用PreCreateWindows()改了吗?
    二、我试了::SetCursor(...);可以改了,为什么用CButton类的SetCursor函数却改不了,为什么?
      

  7.   

    你的CButton 对象是否有没有换成 CMyButton 的对象呢?
    如 CButton m_But 换成 CMyButton m_But
      

  8.   

    你的CButton 对象是否有没有换成 CMyButton 的对象呢?
    如 CButton m_But 换成 CMyButton m_But
        ++
    void CMyButton::OnMouseMove(UINT nFlags, CPoint point) 
    {
    CButton::OnMouseMove(nFlags, point);
    ::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
    }
    注意的是SetCursor函数一定要用全局的即加::否则是无法实现的
      

  9.   

    To:qhluo02(*QHcsnd02) 确认已经转换了好像CButton的 成员函数 SetCursor()和::SetCursor()不是一个意思。