您的位置:首页 > 编程语言

VC编程技巧2 .

2011-09-16 15:14 323 查看
鼠标
设置和获取鼠标双击的时间 默认500ms

SetDoubleClickTime(UINT uInterval)

GetDoubleClickTime()



获取鼠标双击相应范围:

GetSystemMetrics(SM_CXDOUBLECLK)

GetSystemMetrics(SM_CYDOUBLECLK)



限制和取消鼠标活动范围:

ClipCursor(RECT* lpRect);

ClipCursor(NULL);//取消



设置和获取鼠标位置(屏幕坐标):

SetCursorPos

GetCursorPos//获取



显示和隐藏鼠标:

ShowCursorBOOL bShow);//True为显示,反之为隐藏



获取鼠标按键个数

GetSystemMetrics(SM_CMOUSEBUTTONS)



鼠标是否有滚轮:

BOOL GetSystemMetrics(SM_MOUSEWHEELPRESENT)



系统是否安装有鼠标:

GetSystemMetrics(SM_MOUSEPRESENT)



鼠标左右键是否交换:

GetSystemMetrics(SM_SWAPBUTTON)



禁止鼠标左右键进行交换:

HKEY hKey;

LPCTSTR StrKey="Control Panel//Mouse";

if (ERROR_SUCCESS==::RegOpenKeyEx(HKEY_CURRENT_USER,StrKey,NULL,KEY_ALL_ACCESS

,&hKey)){

CString Value="0";

LPCSTR KeyValue="SwapMouseButtons";

if (ERROR_SUCCESS==::RegSetValueEx(hKey,(LPCTSTR)KeyValue,0,REG_SZ,

(BYTE *)(LPCSTR)Value,strlen(Value)+1))

{

MessageBox("禁止对鼠标的左右键功能进行调换设置成功","信息提示",MB_OK);

}

::RegCloseKey(hKey);}

禁止使用鼠标滚轮:

HKEY hKey;

LPCTSTR StrKey="Control Panel//Desktop";

if (ERROR_SUCCESS==::RegOpenKeyEx(HKEY_CURRENT_USER,StrKey,NULL,

KEY_ALL_ACCESS,&hKey))

{

CString Value="0";

LPCSTR KeyValue="WheelScrollLines";

if (ERROR_SUCCESS==::RegSetValueEx(hKey,(LPCTSTR)KeyValue,0,REG_SZ,

(BYTE *)(LPCSTR)Value,strlen(Value)+1))

{

MessageBox("禁止使用鼠标滚轮设置成功","信息提示",MB_OK);

}

::RegCloseKey(hKey);

}



模拟鼠标运行:

VOID mouse_event(DWORD dwFlags, DWORD dx, DWORD dy, DWORD dwData, DWORD dwExtraInfo );

MOUSEEVENTF_ABSOLUTE

MOUSEEVENTF_MOVE

MOUSEEVENTF_LEFTDOWN

MOUSEEVENTF_LEFTUP

MOUSEEVENTF_RIGHTDOWN

MOUSEEVENTF_RIGHTUP

MOUSEEVENTF_TOUCH

MOUSEEVENTF_MIDDLEDOWN

MOUSEEVENTF_WHEEL

MOUSEEVENTF_MIDDLEUP

键盘
判断虚键是否按下:

WM_KEYDOWN消息

VK_LEFT,VK_RIGHT,VK_HOME,VK_END,VK_PRIOR//UP,VK_NEXT//Down



设置键盘响应速度:

HKEY hKey;

LPCTSTR StrKey="Control Panel//Keyboard";

if (ERROR_SUCCESS==::RegOpenKeyEx(HKEY_CURRENT_USER,StrKey,NULL,

KEY_ALL_ACCESS,&hKey))

{

CString Value="50";

LPCSTR KeyValue="KeyboardSpeed";

if (ERROR_SUCCESS==::RegSetValueEx(hKey,(LPCTSTR)KeyValue,0,

REG_SZ,(BYTE *)(LPCSTR)Value,strlen(Value)+1))

{

MessageBox("设置键盘响应速度操作成功","信息提示",MB_OK);

}

::RegCloseKey(hKey);

}



按回车焦点到下一个窗口:

void CMyEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)

{

if(nChar==VK_RETURN)

{

CDialog *pWnd=(CDialog*)GetParent();

pWnd->NextDlgCtrl();

}

CEdit::OnKeyDown(nChar, nRepCnt, nFlags);

}



<
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: