传统的线的样式只有psSolid,psDash等7种,我现在想要用指定的图片来画线,画水平直线的时候好处理,关键是任意倾斜的时候没有办法处理,曲线、弧线就更不可以了!希望各位大侠帮帮忙!
  问题解决另外开贴给分,一贴好象只能100分哦。
  可以用qq交流:5153817

解决方案 »

  1.   

    当你的专家分多的时候可以给到100分以上
    我也没有做过指示给你提个想法:
    我们不是可以在bmp上任意的取大小的图片么你用区域区可以么
    它的形状大小可以根据你的画线的宽度倾斜角度来定然后用此区域区填充你画线地方的区域
      

  2.   

    看能否对你有帮助:void COooView::OnDraw(CDC* pDC)
    {
    COooDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
    CPen* pen;
    CBitmap bmp;
    bmp.LoadBitmap(IDB_BITMAP1);
    LOGBRUSH logbrush;
    logbrush.lbColor=RGB(255,0,0);
    logbrush.lbStyle=BS_PATTERN;
    logbrush.lbHatch=(long)(HBITMAP)bmp;
    pen = CPen::FromHandle(ExtCreatePen(PS_SOLID|PS_GEOMETRIC,10,&logbrush,0,NULL));
    CPen* oldpen = pDC->SelectObject(pen);
    pDC->Ellipse(50,50,150,150);
    pDC->SelectObject(oldpen);
    }
      

  3.   

    谢谢3位!
    to : Forgis(菜根谈)
      谢谢当直线斜率不为0时,brush的图象并不会跟着旋转!
      

  4.   

    坐标系的旋转很EASY!
    来了!
    X2    COS(A)  SIN(A)  0   X1
    Y2 = -SIN(A)  COS(A)  0 * Y1
    Z2      0       0     1   Z1
    X1,Y1,Z1为开始旋转前的坐标,
    X2,Y2,Z2为旋转后的坐标。