如何实现WM_LBUTTONCLICK事件处理程序

时间:2013-08-26 08:48:23

标签: visual-studio-2010 mfc event-handling mouseevent mouseclick-event

假设我有the COpenGLControl class derived from CWnd而我正在为自己的目的定制它 我想做这样的事情:
1-在对话框顶部添加缩放工具工具栏按钮 2-按下工具栏按钮后,下面说明的功能将启用 3-如果用户点击鼠标左键,我们放大了两倍,并且glTranslate到用户点击的位置。
4 - 如果用户单击鼠标右键,我们将缩小0.5倍并将glTranslate缩小到用户点击的位置。
5 - 如果用户单击另一个工具栏按钮,则上述两个步骤中说明的功能将被禁用。

您知道我想在Zoom Tool中实施Global Mapper之类的内容。

我在实施glScaleglTranslate方面没有问题 只是有MFC部分的问题。
在搜索默认邮件处理程序时,我发现我们有WM_LBUTTONDBLCLKWM_LBUTTONDOWNWM_LBUTTONUPWM_RBUTTONDBLCLKWM_RBUTTONDOWNWM_RBUTTONUP但不是{ {1}}或WM_LBUTTONCLK

即使我们有WM_RBUTTONCLKWM_LBUTTONCLK,这些事件处理程序也会在创建窗口后启用并处于活动状态,直到关闭它为止,但我希望它们在某个时间处于活动状态(点击后)缩放工具,然后单击另一个工具)
我从here知道,我可能需要在用户定义的消息处理程序中实现这些功能,但我不知道,因为我是MFC的新手。
你能帮我提出真正的想法吗?

1 个答案:

答案 0 :(得分:0)

尝试类似的内容:

void COpenGLControl::OnLButtonDown(UINT nFlags, CPoint point)
{
    if (zoom_tool_has_been_clicked)
    {
        // do zoom stuff here

        return ;
    }

    CWnd::OnLButtonDown(nFlags, point);
}

只是为了给你一个想法。

相关问题