当鼠标移动时,需要判断在不在矩形内,本来是用PtInRect来判断的,后来矩形需要旋转,就用GDI+绘图,用RotateTransform来旋转 问题是旋转的是画布啊,怎么判断呢GDI+ gdi+PtInRect

解决方案 »

  1.   

    Matrix::Rotate把rect 也旋转了! 
      

  2.   

    可以改成PtInRegion来判断命中。
      

  3.   

    你有函数PtInRect来判断,输入应该是坐标和矩形信息
    旋转的时候把矩形信息更新一下,还是用同样的函数判断
      

  4.   

     Rotate旋转的不还是 graphic 吗?怎么能旋转rect呢 
      

  5.   


    问题是矩形没旋转啊,如果旋转了就好判断了  是画布旋转了,也就是已经画在图片中的那个rect图形是旋转的要判断的是鼠标在不在看到的那个rect中 
      

  6.   


    先生成一个旋转的Matrix,再用Rect::Transform来把rect旋转Matrix呗
      

  7.   


    先生成一个旋转的Matrix,再用Rect::Transform来把rect旋转Matrix呗
    我开头也这么理解,但是rect 没有Transform这个函数啊   CRect 和 GDI+的 RectF 都没有啊
      

  8.   

    http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/8ab48c05-6f0a-4092-8a24-e548eb0b0244看到这个问题 但是还是没有解决
      

  9.   

    创建内存DC,在此DC绘制旋转的rect,在对应的位置取点,判断是rect的颜色是为命中.
    这是最笨的方法了.
      

  10.   

    Rect的旋转点为的圆心建立圆方程,然后根据旋转角度,求旋转之前的点,然后用PtInRect判断。