VC下,如何用代码生成光标?
我需要实现一个动态的光标。由于条件不同,光标大小不同,但基本形状是相同的,比如说,大小不同的圆。
请问如何实现?在此先谢了。

解决方案 »

  1.   

    ??
    don't understand, could you make it details?
      

  2.   

    Creating a Cursor
    The following example creates two cursor handles: one for the standard hourglass cursor and one for a custom cursor included as a resource in the application's resource-definition file. HINSTANCE hinst;            // handle to current instance  
    HCURSOR hCurs1, hCurs2;     // cursor handles 
     
    HCURSOR hCurs3;             // cursor handle 
     
    // Yin-shaped cursor AND mask 
     
    BYTE ANDmaskCursor[] = 

        0xFF, 0xFC, 0x3F, 0xFF,   // line 1 
        0xFF, 0xC0, 0x1F, 0xFF,   // line 2 
        0xFF, 0x00, 0x3F, 0xFF,   // line 3 
        0xFE, 0x00, 0xFF, 0xFF,   // line 4 
     
        0xF7, 0x01, 0xFF, 0xFF,   // line 5 
        0xF0, 0x03, 0xFF, 0xFF,   // line 6 
        0xF0, 0x03, 0xFF, 0xFF,   // line 7 
        0xE0, 0x07, 0xFF, 0xFF,   // line 8 
     
        0xC0, 0x07, 0xFF, 0xFF,   // line 9 
        0xC0, 0x0F, 0xFF, 0xFF,   // line 10 
        0x80, 0x0F, 0xFF, 0xFF,   // line 11 
        0x80, 0x0F, 0xFF, 0xFF,   // line 12 
     
        0x80, 0x07, 0xFF, 0xFF,   // line 13 
        0x00, 0x07, 0xFF, 0xFF,   // line 14 
        0x00, 0x03, 0xFF, 0xFF,   // line 15 
        0x00, 0x00, 0xFF, 0xFF,   // line 16 
     
        0x00, 0x00, 0x7F, 0xFF,   // line 17 
        0x00, 0x00, 0x1F, 0xFF,   // line 18 
        0x00, 0x00, 0x0F, 0xFF,   // line 19 
        0x80, 0x00, 0x0F, 0xFF,   // line 20 
     
        0x80, 0x00, 0x07, 0xFF,   // line 21 
        0x80, 0x00, 0x07, 0xFF,   // line 22 
        0xC0, 0x00, 0x07, 0xFF,   // line 23 
        0xC0, 0x00, 0x0F, 0xFF,   // line 24 
     
        0xE0, 0x00, 0x0F, 0xFF,   // line 25 
        0xF0, 0x00, 0x1F, 0xFF,   // line 26 
        0xF0, 0x00, 0x1F, 0xFF,   // line 27 
        0xF8, 0x00, 0x3F, 0xFF,   // line 28 
     
        0xFE, 0x00, 0x7F, 0xFF,   // line 29 
        0xFF, 0x00, 0xFF, 0xFF,   // line 30 
        0xFF, 0xC3, 0xFF, 0xFF,   // line 31 
        0xFF, 0xFF, 0xFF, 0xFF    // line 32 
    };
     
    // Yin-shaped cursor XOR mask 
     
    BYTE XORmaskCursor[] = 

        0x00, 0x00, 0x00, 0x00,   // line 1 
        0x00, 0x03, 0xC0, 0x00,   // line 2 
        0x00, 0x3F, 0x00, 0x00,   // line 3 
        0x00, 0xFE, 0x00, 0x00,   // line 4 
     
        0x0E, 0xFC, 0x00, 0x00,   // line 5 
        0x07, 0xF8, 0x00, 0x00,   // line 6 
        0x07, 0xF8, 0x00, 0x00,   // line 7 
        0x0F, 0xF0, 0x00, 0x00,   // line 8 
     
        0x1F, 0xF0, 0x00, 0x00,   // line 9 
        0x1F, 0xE0, 0x00, 0x00,   // line 10 
        0x3F, 0xE0, 0x00, 0x00,   // line 11 
        0x3F, 0xE0, 0x00, 0x00,   // line 12 
     
        0x3F, 0xF0, 0x00, 0x00,   // line 13 
        0x7F, 0xF0, 0x00, 0x00,   // line 14 
        0x7F, 0xF8, 0x00, 0x00,   // line 15 
        0x7F, 0xFC, 0x00, 0x00,   // line 16 
     
        0x7F, 0xFF, 0x00, 0x00,   // line 17 
        0x7F, 0xFF, 0x80, 0x00,   // line 18 
        0x7F, 0xFF, 0xE0, 0x00,   // line 19 
        0x3F, 0xFF, 0xE0, 0x00,   // line 20 
     
        0x3F, 0xC7, 0xF0, 0x00,   // line 21 
        0x3F, 0x83, 0xF0, 0x00,   // line 22 
        0x1F, 0x83, 0xF0, 0x00,   // line 23 
        0x1F, 0x83, 0xE0, 0x00,   // line 24 
     
        0x0F, 0xC7, 0xE0, 0x00,   // line 25 
        0x07, 0xFF, 0xC0, 0x00,   // line 26 
        0x07, 0xFF, 0xC0, 0x00,   // line 27 
        0x01, 0xFF, 0x80, 0x00,   // line 28 
     
        0x00, 0xFF, 0x00, 0x00,   // line 29 
        0x00, 0x3C, 0x00, 0x00,   // line 30 
        0x00, 0x00, 0x00, 0x00,   // line 31 
        0x00, 0x00, 0x00, 0x00    // line 32 
    };
     
    // Create a custom cursor at run time. 
     
    hCurs3 = CreateCursor( hinst,   // app. instance 
                 19,                // horizontal position of hot spot 
                 2,                 // vertical position of hot spot 
                 32,                // cursor width 
                 32,                // cursor height 
                 ANDmaskCursor,     // AND mask 
                 XORmaskCursor );   // XOR mask 
      

  3.   

    上面代码的说明贴错了,不好意思,应该是:
    The following example uses the CreateCursor function to create a custom cursor at run time. The example is included here to illustrate how the system interprets cursor masks.