您的位置:程序门 -> .net技术 -> vc.net



控件大小与鼠标单击坐标的关系!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


控件大小与鼠标单击坐标的关系!
发表于:2007-12-10 09:39:30 楼主
我做了一个界面,遇到一个问题,我控件的大小是403*306,而我用这个控件的鼠标单击事件来响应事件的话,单击这个控件的右下角却显示的坐标是705*481,不知道403*306与705*481是什么关系,请各位指点啊!谢谢了。
发表于:2007-12-10 09:46:371楼 得分:0
可能是屏幕坐标和客户区坐标的关系。。
发表于:2007-12-10 09:57:192楼 得分:0
control.pointtoclient()
发表于:2007-12-10 09:59:533楼 得分:0
不会啊,我添加的鼠标单击事件是这个控件的,而且单击这个控件左上角的点时,显示的坐标就是(0,0)啊,而单击右下角时显示的却是(705,481),控件在设计的时候大小是403*306,这到底是怎么回事啊?他们是什么关系啊?请各位高手帮忙,谢谢了。
发表于:2007-12-10 10:07:304楼 得分:0
用代码测试一下控件的size属性是多少,看一下是不是运行后大小改变了?
发表于:2007-12-10 10:24:585楼 得分:0
运行后size也没变啊!
发表于:2007-12-10 10:29:176楼 得分:0
把你的代码主要部分写出来看一下。
发表于:2007-12-10 10:36:497楼 得分:0

void   cmyptzhistratiodlg::onmouseupaxismediacontrol1(long   nbutton,   long   nshiftstate,   long   fx,   long   fy)
{
//   todo:   add   your   message   handler   code   here
giclickcount=1;
gamouseclickpoint[giclickcount].x   =   fx;
//gamouseclickpoint[giclickcount].y   =   imagemaxy-1+buttonheight-fy;   //   flip   the   click   point   for   bmp   processing

gamouseclickpoint[giclickcount].y   =fy;   //   flip   the   click   point   for   bmp   processing

//messagebox("mouse   up");

giclickcount=4;
gamouseclickpoint[2].x=gamouseclickpoint[0].x;
gamouseclickpoint[2].y=gamouseclickpoint[1].y;
gamouseclickpoint[3].x=gamouseclickpoint[1].x;
gamouseclickpoint[3].y=gamouseclickpoint[0].y;

//for(int   i=0;i <4;i++)
//{
// gaclickpoint[i].y=imagemaxy-gaclickpoint[i].y;
//}

gbclickinitflag=totaldlginit();
//m_amc.play();

//messagebox("mouse   up");

}


发表于:2007-12-10 10:38:428楼 得分:0

void   cmyptzhistratiodlg::onmouseupaxismediacontrol1(long   nbutton,   long   nshiftstate,   long   fx,   long   fy)
{
//   todo:   add   your   message   handler   code   here
giclickcount=1;
gamouseclickpoint[giclickcount].x   =   fx;
gamouseclickpoint[giclickcount].y   =fy;   //   flip   the   click   point   for   bmp   processing

gbclickinitflag=totaldlginit();
}


发表于:2007-12-10 10:41:229楼 得分:0
看不懂。。。
发表于:2007-12-10 10:41:2310楼 得分:0
这就是我响应的控件的mouseup事件,我调的fx和fy,左上角是(0,0),而右下角是(705,481),但控件的大小却是403*306。
发表于:2007-12-10 10:45:4611楼 得分:0
其实不用看函数代码,就简单的是:
void       cmyptzhistratiodlg::onmouseupaxismediacontrol1(long       nbutton,       long       nshiftstate,       long       fx,       long       fy)  
{  
//       todo:       add       your       message       handler       code       here  
}  
这就是我响应的控件的mouseup事件,我调的fx和fy,左上角是(0,0),而右下角是(705,481),但控件的大小却是403*306。
发表于:2007-12-10 11:35:2412楼 得分:0
单位的问题,你是想以像素pixel为单位
而设计器是以twip为单位的,需要转换一下


快速检索

最新资讯
热门点击