假设我有the COpenGLControl class derived from CWnd而我正在为自己的目的定制它
我想做这样的事情:
1-在对话框顶部添加缩放工具工具栏按钮
2-按下工具栏按钮后,下面说明的功能将启用
3-如果用户点击鼠标左键,我们放大了两倍,并且glTranslate到用户点击的位置。
4 - 如果用户单击鼠标右键,我们将缩小0.5倍并将glTranslate缩小到用户点击的位置。
5 - 如果用户单击另一个工具栏按钮,则上述两个步骤中说明的功能将被禁用。
您知道我想在Zoom Tool
中实施Global Mapper
之类的内容。
我在实施glScale
或glTranslate
方面没有问题
只是有MFC部分的问题。
在搜索默认邮件处理程序时,我发现我们有WM_LBUTTONDBLCLK
,WM_LBUTTONDOWN
,WM_LBUTTONUP
,WM_RBUTTONDBLCLK
,WM_RBUTTONDOWN
,WM_RBUTTONUP
但不是{ {1}}或WM_LBUTTONCLK
?
即使我们有WM_RBUTTONCLK
或WM_LBUTTONCLK
,这些事件处理程序也会在创建窗口后启用并处于活动状态,直到关闭它为止,但我希望它们在某个时间处于活动状态(点击后)缩放工具,然后单击另一个工具)
我从here知道,我可能需要在用户定义的消息处理程序中实现这些功能,但我不知道,因为我是MFC的新手。
你能帮我提出真正的想法吗?
答案 0 :(得分:0)
尝试类似的内容:
void COpenGLControl::OnLButtonDown(UINT nFlags, CPoint point)
{
if (zoom_tool_has_been_clicked)
{
// do zoom stuff here
return ;
}
CWnd::OnLButtonDown(nFlags, point);
}
只是为了给你一个想法。