当鼠标在自己的程序窗体范围内时候用OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 通过装载资源可以改变形状;
那如果鼠标不再程序窗体范围内时候如何改变呢!(像新版qq中屏幕截图一样,单击那个按钮后鼠标不论在什么位置 都变成那个形状????

解决方案 »

  1.   

    to: syy64(太平洋)
    你的意思是调用了一个透明窗口?但是如果是透明的窗体你也不能像qq那样在上面用鼠标画区域(无法显示)
      

  2.   

    lishan2002(试着勇敢一点)
     loadCursor();是要在OnSetCursor里用啊!
    在up一下
      

  3.   

    CTest6Dlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
    {
    CRect rect; 
    CPoint ptCursor; 
    CWnd *pStatic1=GetDlgItem(IDC_static);  pStatic1->GetWindowRect(rect); //得到static矩形的坐标

    GetCursorPos(&ptCursor); //得到mouse位置
    if(rcButton1.PtInRect(ptCursor))
            { 
            CWinApp *pApp=AfxGetApp(); 
            HICON hIconBang=pApp->LoadCursor(IDC_MY_CURSOR);  SetCursor(hIconBang); //设定此指针
    return TRUE; 

    else 
             //否则不设定
       return CDialog::OnSetCursor (pWnd, nHitTest, message);
    }以上代码实现:当鼠标在static内时显示你的图标。同样你可以得到窗口的rect,判断当鼠标不在rect内时导入你的图标
      

  4.   

    to lixiaosan(小三) : 
    我的意思当鼠标超出自己程序的范围内 如何也改变他的形状 这个能实现吗??
      

  5.   

    呵呵,应该能的,你可以用hook
      

  6.   

    那估计要用Window编程,控制操作系统。