现在需要在CView类中添加对于鼠标和键盘长按得处理。
但是一直没有找到相关的信息。
又没有高人能够提供一些例子,或者思路的
不胜感激。
但是一直没有找到相关的信息。
又没有高人能够提供一些例子,或者思路的
不胜感激。
解决方案 »
- 找一些矢量字体方面的资料
- 奇怪,在vc6对话框上放一个group,group里面的放3个radioButton,第一个设为
- 怎么hook控制台程序?
- 谁能给出VC写的C语言的词法分析器和语法分析器啊?详细点的算法也可!高分相送!!
- 请问用VC怎么调用我自己用ATL写的DLL?
- 如何设定视图窗口的大小??(在线等,不胜感激)
- 寻求《Essential COM》电子版
- 各位谈谈自己的程序生活!
- 请问一下"."和"->"的区别
- 奇怪:我的任一个窗口的标题在正常名字后都加了一个" - Microsoft Internet Explorer",以致我得到的是不正确的标题名,我怎么改设置?
- 用什么来显示选择的颜色!
- 新手上路:VC++ 同 C++ ,这两种语言有哪些区别?
一旦按下后即开始计时, 达到一定时间则视为长按.
//开始计时..........
不过能不能给一个详细一点的例子?TO:zhucde(【風間苍月】★MVP★www.bezier.com.cn/bbs★虚拟)
你说的在PreTranslateMessage中处理,能不能给一个详细一点的例子。
如果bButtonDown为False,设置bButtonDown为True,开始计时。
如果bButtonDown为True,什么都不做。WM_LBUTTONUP
设置bButtonDown为False;
停止计时,计时归零
时间达到长按时间(自己设定),检测bButtonDown,
如果为True,处理长按
新建一个对话框程序,上面放置两个静态文本控件,用来显示鼠标和键盘按下的时间,
ID分别为IDC_MOUSE, IDC_KEYBOAD;在头文件.h中定义如下两个变量:
class CInputTestDlg : public CDialog
{
// Construction
public:
CInputTestDlg(CWnd* pParent = NULL); // standard constructor
CString m_keyboard;//显示值
CString m_mouse;//显示值....在CXXdlg.cpp的开头定义如下四个变量:
int mouse=0,key=0;
int mti=0,kti=0;在OnInitDialog中加入:
SetTimer(1,10,0);然后:BOOL CInputTestDlg::PreTranslateMessage(MSG* pMsg)
{ if(pMsg->message==WM_KEYDOWN)
{
key=1;
}
if(pMsg->message==WM_KEYUP)
key=0;
if(pMsg->message==WM_LBUTTONDOWN||pMsg->message==WM_MBUTTONDOWN||pMsg->message==WM_RBUTTONDOWN)
mouse=1;
if(pMsg->message==WM_LBUTTONUP||pMsg->message==WM_MBUTTONUP||pMsg->message==WM_RBUTTONUP)
mouse=0;
return CDialog::PreTranslateMessage(pMsg);
}void CInputTestDlg::OnTimer(UINT nIDEvent)
{ if(key)
{
kti++;
}
else
kti=0;
if(mouse)
mti++;
else
mti=0;
m_mouse.Format("%d",kti);
m_keyboard.Format("%d",mti);
GetDlgItem(IDC_MOUSE)-> SetWindowText(m_mouse);
GetDlgItem(IDC_KEYBORD)-> SetWindowText(m_keyboard);
CDialog::OnTimer(nIDEvent);
}搞定.(当然这个只是显示循环值,并非时间值,你自己可以改一下)
如果好用马上结贴。