我想在程序中知道已知的按钮何时被按下,并在被按下时,做一些其它动作,不知道如何作好一点?
解决方案 »
- 我想要给一个单文档程序动态换肤应该怎么弄啊。。。。急。。。
- 系统装软件,默认老是其它语言,显示是乱码
- 点击按钮让对话框增加高度-类似qq登陆框上'设置 '
- 当所画图形超出了预定范围该怎么办?很急!!
- 在VC中如何实现控件数组?
- 请教一下,谁用过Gina,我在我的Gina里用了我的登陆对话框,但怎样把我的登陆对话框得到的用户输入的用户名和密码传给Windows呢?
- 怎样向另一个进程发送消息?还有怎么捕捉鼠标?
- 消息问题
- 毕业找工作应该注意什么?谢谢你的帮助!
- 关于使用BCG和CFrameWndEX,界面的问题
- 串口通迅!
- 连接错误,哪位知道怎么解决。nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z)
或手工:
1、afx_msg void OnButtonHello();
2、ON_BN_CLICKED(IDC_BUTTON_HELLO, OnButtonHello)
3、OnButtonHello函数定义、功能实现
想在程序中知道已知的按钮何时被按下
是不是想知道按钮被按下的时间啊?用CTime::GetCurrentTime()
如果是Button 的话 对应的是BN_CLICKED 如果是组合框(combo box)的话 就是CBN_SELCHANGE 或其他的 根据你的要求来定
WM_COMMAND
wNotifyCode = HIWORD(wParam); // 通知代码
wID = LOWORD(wParam); // 按钮ID
hwndCtl = (HWND) lParam; // 控件句柄当然,在MFC之中,按钮单击的时候就会通过消息映射,映射到BN_CLICKED通知消息了。
当检测到WM_LBUTTONDOWN时
MOUSEHOOKSTRUCT *MouseInfo = (MOUSEHOOKSTRUCT*)lParam;
MouseInfo->pt 是按下鼠标时的坐标
根据WindowFromPoint()得到鼠标所在按钮的HWND
GetWindowText()得到按钮的文字
用它与目标按纽的文字比较strcmp()LRESULT MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
MOUSEHOOKSTRUCT *MouseInfo = (MOUSEHOOKSTRUCT*)lParam;
if (wParam == WM_LBUTTONDOWN)
{
GetWindowText(WindowFromPoint(MouseInfo->pt), str, 100);
if (strcmp("OK", str) == 0)
{
//你的代码
}
}
}