• <sup id="uesdi"></sup>
    <sup id="uesdi"></sup>
  • <dl id="uesdi"></dl>
    <div id="uesdi"></div>
  • <dl id="uesdi"><ins id="uesdi"></ins></dl>
  • <dl id="uesdi"></dl>
    <sup id="uesdi"><menu id="uesdi"></menu></sup><dl id="uesdi"></dl>
    <div id="uesdi"><s id="uesdi"></s></div>
  • <span id="uesdi"><address id="uesdi"></address></span>
    <li id="uesdi"><tr id="uesdi"><object id="uesdi"></object></tr></li>
    <dl id="uesdi"><menu id="uesdi"><thead id="uesdi"></thead></menu></dl>
  • <li id="uesdi"><ins id="uesdi"></ins></li>
  • <sup id="uesdi"><ins id="uesdi"></ins></sup>
  • <dl id="uesdi"></dl>
    <div id="uesdi"></div>
    <dl id="uesdi"><ins id="uesdi"></ins></dl>
  • <div id="uesdi"><s id="uesdi"></s></div>
    <li id="uesdi"><ins id="uesdi"><thead id="uesdi"></thead></ins></li>
  • <dl id="uesdi"></dl>
    <li id="uesdi"></li>
  • <dl id="uesdi"></dl>
  • <div id="uesdi"><s id="uesdi"></s></div>

    極光下載站 - 打造齊全的綠色軟件家園

    極光下載站

    當前位置: 首頁 技術開發 程序開發 WINDOWS下的動態鼠標光標控制

    WINDOWS下的動態鼠標光標控制

    時間:2006/7/19 6:06:47 作者:佚名 人氣:7872

    正常情況下的Windows鼠標光標形狀為向左上角的單箭頭符號。根據應用程序不同客戶區域的需要,用戶可以建立自己的鼠標光標形狀,常見的有手形鼠標光標、不同方向的箭頭鼠標光標、立體箭頭鼠標光標和筆式鼠標光標等。中文Windows95下的鼠標光標形狀比較豐富,在"\WINDOWS\CURSORS"目錄下存放。此外,用戶完全可以利用Windows下的中文SDK3.1、VF P3.0和Delphi2.0中的"IMAGE EDITOR"等資源編輯器創建自己的鼠標光標資源文件.CUR。這里筆者將自己的一些編程技術和基本方法介紹給大家,供參考。

    鼠標光標資源的定義和調用

    建立起自己的鼠標光標資源文件后,首先需要在應用程序的資源文件中定義鼠標光標。假設鼠標光標資源文件名為MOUSE.CUR和MOUSEM.CUR,在資源文件中的定義方法如下:


    imecurh CURSOR mouse.cur

    imecurm CURSOR mousem.cur

    鼠標光標資源文件經定義之后,方可在應用程序中利用LoadCursor()函數調入內存使用,其調用方法如下:

    HCURSOR hCurh;//定義鼠標資源句柄


    HCURSOR hCurm;//將鼠標光標數據調入內存


    hCurh=LoadCursor(hInstance,


    imecurh");hCurh=LoadCursor(hInstance,"imecurm");

    動態鼠標光標的全局注方法
    當鼠標光標移動到客戶應用程序的窗口內時,鼠標光標立刻變成定制的形狀。要實現這一功能,只需在注冊客戶應用程序窗口類時定義相應的鼠標光標資源即可。正常情況下客戶應用程序鼠標句柄的定義方法如下:


    wc.Cursor=LoadCursor(NULL,IDC_ARROW);

    要在窗口內將鼠標光標變成特定的形狀,必須用下述方法定義光標句柄,然后注冊窗口類:

    wc.hCursor = hCurh;


    利用這種方法定制的全局性鼠標光標具有如下特點:只要鼠標光標移入該客戶應用程序的窗口內,光標形狀立刻變成定制的形狀;鼠標光標移動平滑快速,無抖動等不良現象。
    特定客戶區域內的動態鼠標光標

    很多應用程序具有在特定的客戶區域內鼠標光標具有特定形狀的功能,如UCWIN3.1的特殊符號軟鍵盤:當鼠標光標移動到軟鍵盤窗口內的按鍵位置時,光標形狀為手形,當移動到非按鍵位置時,光標形狀為上下左右四箭頭形狀;要實現這一動態鼠標光標功能,應按如下操作步驟編制:

    首先將手形光標按上述方法設置為全局性的動態鼠標光標:


    wc.hCursor = hCurh;


    然后注冊相應窗口的窗口類,在該窗口函數中對WM_MOUSEMOVE消息進行如下處理:
    1.獲取鼠標光標的屏幕位置;

    2.判斷鼠標光標在特定區域內,則設置相應光標形狀并設置標志;

    3.判斷鼠標光標移出特定位置則清除標志并恢復原來光標形狀。

    程序代碼如下:


    POINT pt;


    RECT rt;


    BOOL iFlag;


    case WM_MOUSEMOVE:


    pt=MAKEPOINT(IParam);//光標位置


    if(PtInRect(&rt,pt)){


    //在特定區域設置鼠標光標


    iFlaq=TRUE;


    setCursor(hCurm);


    } else if(iFlag==TRUE){


    iFlag=FALSE;


    SetCursor(hCurh);


    }


    break;

    上述特定客戶區域內的動態鼠標光標雖然具有略微的抖動問題,但由于一般情況下的特定客戶區域都比較小,所以這種現象也并不明顯,完全可以滿足客戶程序的需要。如果客戶程序存在多個特定區域需要不同形狀的鼠標光標,只需建立多個用戶光標源文件,并進行多個特定區域判斷即可,有興趣的讀者可以自行擴充。
    <
    標簽
    分享到:

    公眾號

    香港透码网
  • <sup id="uesdi"></sup>
    <sup id="uesdi"></sup>
  • <dl id="uesdi"></dl>
    <div id="uesdi"></div>
  • <dl id="uesdi"><ins id="uesdi"></ins></dl>
  • <dl id="uesdi"></dl>
    <sup id="uesdi"><menu id="uesdi"></menu></sup><dl id="uesdi"></dl>
    <div id="uesdi"><s id="uesdi"></s></div>
  • <span id="uesdi"><address id="uesdi"></address></span>
    <li id="uesdi"><tr id="uesdi"><object id="uesdi"></object></tr></li>
    <dl id="uesdi"><menu id="uesdi"><thead id="uesdi"></thead></menu></dl>
  • <li id="uesdi"><ins id="uesdi"></ins></li>
  • <sup id="uesdi"><ins id="uesdi"></ins></sup>
  • <dl id="uesdi"></dl>
    <div id="uesdi"></div>
    <dl id="uesdi"><ins id="uesdi"></ins></dl>
  • <div id="uesdi"><s id="uesdi"></s></div>
    <li id="uesdi"><ins id="uesdi"><thead id="uesdi"></thead></ins></li>
  • <dl id="uesdi"></dl>
    <li id="uesdi"></li>
  • <dl id="uesdi"></dl>
  • <div id="uesdi"><s id="uesdi"></s></div>
  • <sup id="uesdi"></sup>
    <sup id="uesdi"></sup>
  • <dl id="uesdi"></dl>
    <div id="uesdi"></div>
  • <dl id="uesdi"><ins id="uesdi"></ins></dl>
  • <dl id="uesdi"></dl>
    <sup id="uesdi"><menu id="uesdi"></menu></sup><dl id="uesdi"></dl>
    <div id="uesdi"><s id="uesdi"></s></div>
  • <span id="uesdi"><address id="uesdi"></address></span>
    <li id="uesdi"><tr id="uesdi"><object id="uesdi"></object></tr></li>
    <dl id="uesdi"><menu id="uesdi"><thead id="uesdi"></thead></menu></dl>
  • <li id="uesdi"><ins id="uesdi"></ins></li>
  • <sup id="uesdi"><ins id="uesdi"></ins></sup>
  • <dl id="uesdi"></dl>
    <div id="uesdi"></div>
    <dl id="uesdi"><ins id="uesdi"></ins></dl>
  • <div id="uesdi"><s id="uesdi"></s></div>
    <li id="uesdi"><ins id="uesdi"><thead id="uesdi"></thead></ins></li>
  • <dl id="uesdi"></dl>
    <li id="uesdi"></li>
  • <dl id="uesdi"></dl>
  • <div id="uesdi"><s id="uesdi"></s></div>
    福建时时8亿 浙江体彩超级大乐透走势图 中日性感美女图片 下载app送1888彩金 赛车pk拾平台出租 喜乐彩票开奖结果 福彩3d小军第二版彩吧图库 北京5分彩全天计划 极速赛车彩票害死人 江苏时时开奖 wnba排名 吉林时时票开奖号码查询今天 广西快乐十分钟开奖结果查询 高手开船赌三公的技巧 重庆时时官网同步开奖结果 福建时时时间