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);
}
<
设置和获取鼠标双击的时间 默认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);
}
<
相关文章推荐
- VC编程技巧锦集-from vckbase.com
- VC 编程技巧 (三)
- VC界面编程技巧
- 【VC编程技巧】控件☞4.3Pictrue控件(打造成对话框分割线)
- VC编程技巧锦集
- VC 编程技巧 (四)
- 【VC编程技巧】窗口☞3.5对单文档或者多文档程序制作启动画面
- 【VC编程技巧】窗体☞3.8静态窗口分割
- 【VC编程技巧】动态链接库☞1.5设计支持多国语言应用程序
- 【VC编程技巧】文件☞2.3CArchive的用法
- VC编程中20种各种编程技巧和方法
- VC编程技巧集锦
- 【VC编程技巧】控件☞4.2自定义EDIT(只限字母字符输入)
- VC多文档编程技巧(取消一开始时打开的空白文档)
- VC 编程技巧 (五)
- VC/MFC 编程技巧大总结
- 【VC编程技巧】动态链接库☞1.6设计应用程序界面换肤
- VC编程技巧:IE控件的高级用法
- VC 编程技巧 (六)
- VC++编程技巧