比如我画图画一个三角形就是有个类专门用来画三角形,然后我想到三角形的类中响应鼠标事件,比如鼠标点击刚刚画的三角形区域的话,弹出一个消息框,这个处理过程我想放在这个三角形的类中实现,请问改如何实现。
解决方案 »
- GetFullPathName,vs2005,UNICODE的release版本老执行出错,不知怎么回事?
- VC画图 程序写好了也生成了 为什么输出是白得 什么也没有
- 如何得到rebar上的区域!
- 再问一个鼠标光标的问题
- 有没有现成的VC类可实现2维数组,不仅数组本身长度可变,数组元素的长度也可变???最好加简单代码说明!!!
- 怎样将一个工程的窗体引入到现在的工程中?
- context menu
- VS2010 F11 调试追踪MFC源码失效
- 高人来解答阿,对话框部分区域背景如何设置?
- 热点问题!!!!大家国庆节都干吗去??有什么安排么??到那里玩???
- 高分求解directshow 网络播放器问题, 在线等待,不够可以加分
- 程序中用了ACTIVEX控件,做安装包的时候该怎么搞
产生一个内存DC,然后,在DC中画上你想检测的图形,然后根据鼠标的位置来调用该DC的GetPixel来判断不是黑色即鼠标的位置在图形内,如果有多个图形就使用不同的颜色画,然后根据颜色来判断点在哪个图形内
Class CTrigon
{
public:
CTrigon();
CTrigon(CPoint p1, CPoint p2, CPoint p3); //构造你的三角形
~CTrigon();
void Draw(CDC* pDC); //在该函数内绘制三角形
void OnLButtonDown(CPoint pnt);//在该函数内判断pnt是否在本三角范围之内,是则弹出对话框protected:
CPoint p1, p2, p2
};在你的视图类中定义一个CTrigon对象
CTrigon m_pTrigon;
在你的视图类OnDraw函数内调用三角类的绘制函数
m_pTrigon.Draw( pDC );
这样就绘制出三角形了然后你的视图类OnLButtonDown函数内调用三角类的OnLButtonDown函数
m_pTrigon.OnLButtonDown( point );这样你在视图内点击鼠标时,三角对象也自动分析是否要动作了
CPoint m_pnt1, m_pnt2, m_pnt2
多少个都没有问题。
定义一个对象数组,动态创建后放入数组内,鼠标点击后,遍历数组对象,调用每个对象的OnLButtonDown,
vector <CTrigon> m_vecTrig;在你添加一个三角形时:
CTrigon tr;
...// 初始化tr
m_vecTrig.push_back( tr );然后在你的视图类OnLButtonDown函数内调用三角类的OnLButtonDown函数
long l;
for ( l = 0; l < m_vecTrig.size(); l++ )
m_vecTrig[l].OnLButtonDown( point );然后在你的CTrigon类中实现OnLButtonDown()函数就行了