订阅所有文章
文章搜索

高级搜索这是社么?这是顶尖最新推出的文章增强型搜索功能!
全网 本站
您现在的位置: 顶尖设计 >> IT学院 >> 编程开发 >> VC >> 文章正文

怎样在非客户区捕捉鼠标状态?

作者:zhucde  来源:CSDN  点击  更新:2006-12-19 7:08:18  编辑: 画王w  字体

GetDeviceState( sizeof(DIMOUSESTATE2), &dims2 );
    if( FAILED(hr) )
    {
     
        hr = g_pMouse->Acquire();
        while( hr == DIERR_INPUTLOST )
            hr = g_pMouse->Acquire();

        if( hr == DIERR_OTHERAPPHASPRIO ||
            hr == DIERR_NOTACQUIRED )
            SetDlgItemText(IDC_STATIC1, "失败!" );

       
    }
   
    GetCursorPos(&point); 
//得到鼠标位置.这个功能直接用API得到更方便,所以这里取

                                        // 代了DirectX
 
    strNewText.Format("L=%d R=%d M=%d X=%4d Y=%4d",  //写入结果,分别为L左

                                                                                          //键,R右键,M中键,X鼠标X

                                                                                          //值,Y鼠标Y值.前三个值,1

                                                                                          //表示按下,0为弹起
                        
                        (dims2.rgbButtons[0] & 0x80) ? 1 : 0,
                        (dims2.rgbButtons[1] & 0x80) ? 1 : 0,
                        (dims2.rgbButtons[2] & 0x80) ? 1 : 0,
                           point.x,point.y
                          );
 

    CString strOldText;
    GetDlgItemText(IDC_STATIC1, strOldText);
   
    if( 0 != lstrcmp( strOldText, strNewText ) )
        SetDlgItemText( IDC_STATIC1, strNewText );
//显示结果,IDC_STATIC1为用来

                                                                               //显示的文本标签
   
}

VOID CMouseRDlg::FreeDirectInput()         //释放
{
        if( g_pMouse )
        g_pMouse->Unacquire();
    

    SAFE_RELEASE( g_pMouse );
    SAFE_RELEASE( g_pDI );
}


void CMouseRDlg::OnTimer(UINT nIDEvent)
{

 ReadImmediateData( );
 CDialog::OnTimer(nIDEvent);
}


void CMouseRDlg::OnDestroy()
{

 FreeDirectInput();
 KillTimer(1);
 CDialog::OnDestroy();
 
 
}

OK了,运行一下程序就可以了,这时你会发再点击屏幕任意一个地方都会有响应了.

下载工程代码:

http://www.7forever.com/rwdata/temp/MouseR.rar

作者信箱:

zhucde@163.com

上一页  [1] [2] 

  • 上一篇文章:

  • 下一篇文章:
  •      
    热门文章  
    推荐文章  
    相关文章    
     发表评论
      关于我们 | 联系我们 | 站点地图 | 广告投放 | 友情链接 | 在线留言 | 版权申明
    版权所有 © 2004-2007 顶尖设计(bobd.cn)
    未经授权禁止转载,摘编,复制本站内容或建立镜像. 沪ICP备05002835号