Windows CE: 通过Application实现对鼠标光标的隐藏和显示的控制

平台FreeScale i.MX51

 

1. Define a global variable to determine if show the cursor
 
C:/WINCE600/PLATFORM/COMMON/SRC/SOC/COMMON_FSL_V2/IPUV3/DDRAW/ddipu.h
 
class DDIPU : public DDGPE
 
{
    protected:
           BOOL            m_bCursorHide;
 .. .
  
 
2.  Init the m_bCursorHide and create a thread to monitor cursor state
 
C:/WINCE600/PLATFORM/COMMON/SRC/SOC/COMMON_FSL_V2/IPUV3/DDRAW/ddipu.cpp
 
BOOL DDIPU::Init(VOID)
 
{
           m_bCursorHide = TRUE; // Hide cursor as default state
 
 
 
3. According m_bCursorHide, decide to do DDIPU::CursorOn or not.
 
C:/WINCE600/PLATFORM/COMMON/SRC/SOC/COMMON_FSL_V2/IPUV3/DDRAW/ddipu_cursor.cpp
 
VOID DDIPU::CursorOn(VOID)
{
...
           If (m_bCursorHide)
           {
                     // do nothing..
           } 
           else
           {
                     // handle the cursor state..
           }
...
}  
 
4. add wistron custom ioctl in the DrvEscape()
 
C:/WINCE600/PLATFORM/COMMON/SRC/SOC/COMMON_FSL_V2/IPUV3/DDRAW/ddipu_misc.cpp
 
#define DDIPU_CURSOR_HIDE     100100
 
#define DDIPU_CURSOR_SHOW  100101
 
ULONG DDIPU::DrvEscape(..)
{..
    switch(iEsc)
    {
     ...
           case DDIPU_CURSOR_HIDE:
                     m_bCursorHide = TRUE;
                     break;             
            case DDIPU_CURSOR_SHOW:
                      m_bCursorHide = FALSE;
                     break;
    ..
.. 
}
 
5. Test the ioctl in the app
 
#define DDIPU_CURSOR_HIDE     100100
 
#define DDIPU_CURSOR_SHOW  100101
 
 
 
HDC hdc; 
hdc = GetDC(hWnd); 
ExtEscape(hdc, DDIPU_CURSOR_SHOW, 0, NULL, 0, NULL); // Show cursor
 
ExtEscape(hdc, DDIPU_CURSOR_HIDE, 0, NULL, 0, NULL);
ReleaseDC(hWnd, hdc);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值