VC++获取鼠标单击的位置代码讲解下
voidCRipple::ripple_click(intmousex,intmousey){intindex;index=0;while(t[index]<max[in...
void CRipple::ripple_click(int mousex, int mousey)
{
int index;
index = 0;
while (t[index] < max[index] && index < RIPPLE_COUNT)
index++;
if (index < RIPPLE_COUNT)
{
cx[index] = 1.0*mousex/win_size_x*GRID_SIZE_X;
cy[index] = 1.0*mousey/win_size_y*GRID_SIZE_Y;
t[index] = 4*RIPPLE_STEP;
max[index] = ripple_max_distance(cx[index], cy[index]);
}
}
这段代码是获取鼠标单击的位置的,就是if里面的那两个cx和cy不懂,我如果去掉1.0,鼠标点击位置就变了..这是OpenGl高级编程与可视化里的一段代码。 展开
{
int index;
index = 0;
while (t[index] < max[index] && index < RIPPLE_COUNT)
index++;
if (index < RIPPLE_COUNT)
{
cx[index] = 1.0*mousex/win_size_x*GRID_SIZE_X;
cy[index] = 1.0*mousey/win_size_y*GRID_SIZE_Y;
t[index] = 4*RIPPLE_STEP;
max[index] = ripple_max_distance(cx[index], cy[index]);
}
}
这段代码是获取鼠标单击的位置的,就是if里面的那两个cx和cy不懂,我如果去掉1.0,鼠标点击位置就变了..这是OpenGl高级编程与可视化里的一段代码。 展开
2个回答
展开全部
这个好写啊。你用MFC写的话,在你的对话框类上点击右键,选择add window message handle 添加WM_LBUTTONDOWM ,这个是左键响应,或者直接在你要电击的对话框上,选择右键的 classwizard,选择messages里面的WM_LBUTTONDOWM ,添加后会有个OnLButtonDown函数,函数里面的CPoint point参数就是鼠标的位置。比如你可以判断:
if (point.x>0&&point.x<300&&point.y>0&&point.y<500&&)
{
//调用其他程序
WinExec("Notepad.exe ", SW_SHOW);
}case WM_LBUTTONDOWN:
x=LOWORD(lParam);
y=HIWORD(lParam);
break;case WM_LBUTTONDOWN:
mouse_x=LOWORD(lParam);
mouse_y=HIWORD(lParam);
sprintf(str,"%d,%d",mouse_x,mouse_y);//显示坐标
TextOut(cdc,20,20,str,strlen(str));
break;
if (point.x>0&&point.x<300&&point.y>0&&point.y<500&&)
{
//调用其他程序
WinExec("Notepad.exe ", SW_SHOW);
}case WM_LBUTTONDOWN:
x=LOWORD(lParam);
y=HIWORD(lParam);
break;case WM_LBUTTONDOWN:
mouse_x=LOWORD(lParam);
mouse_y=HIWORD(lParam);
sprintf(str,"%d,%d",mouse_x,mouse_y);//显示坐标
TextOut(cdc,20,20,str,strlen(str));
break;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询