joint 发表于 2017-7-2 17:45:11

这个代码能否转为AU3的?

这个代码能否转为AU3的?这么短的代码画的图看起来很不错啊。void CRotateAnimation::DrawPie(HDC hDC)
{
    Gdiplus::Graphics* pGraphics=new Gdiplus::Graphics(hDC);
    pGraphics->SetSmoothingMode(SmoothingModeHighQuality);
    Gdiplus::Color clr(150,0,0,0);
    Gdiplus::SolidBrush* pBrush=new Gdiplus::SolidBrush(clr);
    //--------------------------------------------------------
    //计算外圈、内圈位置
    Gdiplus::Rect rcOut(m_Rect);
    Gdiplus::Rect rcIn(rcOut);
    rcIn.Inflate(-m_ItemSize,-m_ItemSize);
    //--------------------------------------------------------
    //先画出外圈小方块
    float fStartAngle = -90;//起始绘制角度
    float fSweepAngle = 360 / m_AnimationCount;//每小块的角度
    for(int i=0;i<m_AnimationCount;i++)
    {
      clr.SetFromCOLORREF(m_pAnimationArray.clrOut);
      pBrush->SetColor(clr);
      pGraphics->FillPie(pBrush,rcOut, fStartAngle, fSweepAngle - m_MarginAngle);
      fStartAngle = fStartAngle + fSweepAngle;
    }
    //--------------------------------------------------------
    //画出内圈小方块;
    fStartAngle = -90;
    for(int i=0;i<m_AnimationCount;i++)
    {
      clr.SetFromCOLORREF(m_pAnimationArray.clrIn);
      pBrush->SetColor(clr);
      pGraphics->FillPie(pBrush,rcIn, fStartAngle, fSweepAngle - m_MarginAngle);
      fStartAngle = fStartAngle + fSweepAngle;
    }
    //--------------------------------------------------------
    //画出中间圆心,用控件底色填充
    rcIn.Inflate(-m_ItemSize,-m_ItemSize);
    clr.SetFromCOLORREF(m_ColorBack);
    pBrush->SetColor(clr);
    pGraphics->FillEllipse(pBrush,rcIn);
    //--------------------------------------------------------
    delete pBrush;
    delete pGraphics;
}http://blog.csdn.net/CometNet/article/details/53363596

haijie1223 发表于 2017-7-2 21:27:42

能上完整的代码吗?

帆船 发表于 2017-7-2 22:41:24

你总不能让我们自己去CSDN下载吧,要积分的

lpxx 发表于 2017-7-2 22:52:31

像C++的代码,不懂,帮不上忙,不过官方有例子,可以参考https://www.autoitscript.com/forum/topic/139174-gdi-cc-code-to-autoit-conversion/

haijie1223 发表于 2017-7-2 22:59:35

画圆还可以,就是旋转那个,感觉是在另外的函数里面控制颜色,把全部代码发出来,看下旋转用的是什么算法。

joint 发表于 2017-7-3 00:24:17

本帖最后由 joint 于 2017-7-3 00:31 编辑

能上完整的代码吗?
haijie1223 发表于 2017-7-2 21:27 http://www.autoitx.com/images/common/back.gif

不好意思,没看清,以为上面的已经是完整的了,刚才去下载了。
这是完整的:

joint 发表于 2017-7-3 00:27:17

像C++的代码,不懂,帮不上忙,不过官方有例子,可以参考
lpxx 发表于 2017-7-2 22:52 http://www.autoitx.com/images/common/back.gif

谢谢,前面的代码是VC和易语言的,刚才下载了,在我刚才发的帖子里。

haijie1223 发表于 2017-7-3 13:05:33

大体就是这么个意思吧?

joint 发表于 2017-7-3 22:24:42

本帖最后由 joint 于 2017-7-4 09:18 编辑

大体就是这么个意思吧?
haijie1223 发表于 2017-7-3 13:05 http://www.autoitx.com/images/common/back.gif

是的,太牛了,hai大威武。
关注这样的样例是因为需要做个实时动态显示的窗口。 一开始感觉Vispy挺合适,仔细一看,发现太难,需要C和OpenGL相关的基础,根本不是我这样的初学者可以做到的。
前些天刚发现au3的界面功能也挺丰富的,就想探讨下可能性。您是这方面的专家,麻烦帮看看这样的需求用au3做是否合适:
大致如下图:


第一个为柱状堆积图,但是需要实时显示和交互。
第二张图为可交互的色块图,想通过在ListView上添加控件实现,从这个帖子看ListView上添加控件应该没问题:
http://www.autoitx.com/forum.php?mod=viewthread&tid=3028&from=favorites
所以又找了些绘制圆和长方块的源码,希望能把绘图部分的函数提取出来,然后在ListView绘制。
但是这对我来说比较难,所以发了个求助帖:http://www.autoitx.com/thread-55549-1-1.html
但是好像没什么人回复,感觉这个可能也比较难。

因为要绘制的图形都是比较简单的标准图形,所以,后来又想是不是可以直接用字符图案代替图形的绘制?
见:各种字符图案代码
http://www.360doc.com/content/14/0105/15/9708896_342803932.shtml

hai大您是专家,现在有种终于找到组织的感觉,麻烦帮忙看看,我这个需求,采用什么样的方式做比较好。谢谢。

haijie1223 发表于 2017-7-3 22:30:44

回复 9# joint


    你这个需求好像不是一两天了,你这个单似乎在论坛之外就已经看到了。只是要求过于繁琐,没人愿意接。{:face (303):}

joint 发表于 2017-7-3 22:38:02

本帖最后由 joint 于 2017-7-3 22:39 编辑

回复joint
    你这个需求好像不是一两天了,你这个单似乎在论坛之外就已经看到了。只是要求过于繁 ...
haijie1223 发表于 2017-7-3 22:30 http://www.autoitx.com/images/common/back.gif

是啊,这困难困扰我有段时间了。
难点主要在哪里?我看看是否可以简化下。

haijie1223 发表于 2017-7-3 22:51:54

回复 11# joint


    手机爬论坛费劲,Q聊吧

joint 发表于 2017-7-3 22:55:31

回复 12# haijie1223

ok

rikthhpgf2005 发表于 2017-7-9 22:02:53

#include <GDIPlus.au3>
_GDIPlus_GraphicsDrawPie ( $hGraphics, $nX, $nY, $nWidth, $nHeight, $fStartAngle, $fSweepAngle [, $hPen = 0] )

haijie1223 发表于 2017-7-10 09:14:05

回复 13# joint


    http://www.autoitx.com/thread-55579-1-1.html
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 这个代码能否转为AU3的?