用LoadCursor可以设定鼠标形状,用GetCursor可以获得鼠标光标的句柄,那我怎么知道这个句柄是对应IDC_HAND或是IDC_CROSS呢?

解决方案 »

  1.   

    要获得它干嘛一般都是用到的时候设置一种,用完了在设回来。也就是说任何时候你都知道自己所用的cursor是什么。
      

  2.   

    typedef struct {
        DWORD cbSize;
        DWORD flags;
        HCURSOR hCursor;
        POINT ptScreenPos;
    } CURSORINFO, *PCURSORINFO, *LPCURSORINFO;
    GetCursorInfo 这个函数:
    需要Windows 98, Windows NT 4.0 SP6,而且其中没有光标ID信息。如果真想知道当前是什么光标,可以这么做:
    HCURSOR hcur = GetCursor();
    HCURSOR harrow = AfxGetApp()->LoadStandardCursor(IDC_ARROW);
    if(hcur == harrow)
    {
    // 光标是IDC_ARROW
    }
             else if  // 其他的光标
             {
              }
      

  3.   

    没有办法,据我所知。sdk里面和cursor相关的函数不多,getcursorpos 和 getcursorinfo是我见过的仅有的两个获取cursor信息的函数。这些都没有提供或者间接提供你想要的功能。
      

  4.   

    Atomictry(天影 -- 哈哈哈哈,日子没法过了):
    你的这个方法应该是可以的,我用delphi做了一下,是可以用的,我直接用的loadcursor(IDC_HAND)。
    光标句柄是固定的?