[Perl]Win32::GUI::DC 绘图示例

头像
PerlMonk
渐入佳境
渐入佳境
帖子: 51
注册时间: 2016年09月19日 10:20
拥有现金: 锁定
Has thanked: 4 times
Been thanked: 3 times
联系:

[Perl]Win32::GUI::DC 绘图示例

帖子 #1 PerlMonk » 2017年06月19日 11:36

[Perl]Win32::GUI::Pen 绘图示例
    编辑: 523066680@163.com
    时间: 2017-06
    转载请注明出处

    静态绘制
      use Win32::GUI;

      my $Win = Win32::GUI::Window->new(
      -title=>"abc",
      -pos=>[100,100],
      -size=>[200,200]
      );

      my $DC = $Win->GetDC;

      $Win->Show();

      #绘制指令必须放在 Show 之后,或者放在 Timer 之中
      $DC->Line(1, 1, 100, 100);
      $DC->SetPixel(100, 110, [50, 100, 200]);

      Win32::GUI::Dialog();


      图片
    通过Timer,随机画线
      use Win32::GUI;

      my $Win = Win32::GUI::Window->new(
      -title=>"abc",
      -pos=>[100,100],
      -size=>[200,200]
      );

      $Win->AddTimer("T1", 100);

      my $DC = $Win->GetDC;

      $Win->Show();
      Win32::GUI::Dialog();

      sub T1_Timer
      {
      $DC->Line( rand()*200, rand()*200, rand()*200, rand()*200 );
      }


      图片
    设置线条风格以及填充颜色
      Win32::GUI::Pen->new(%option) 建立画笔对象,
      Win32::GUI::Brush->new(%option) 建立画刷对象(用于填充)

      然后使用 $DCHandle->SelectObject() 分别选择画笔和画刷

      use Win32::GUI;

      my $Win = Win32::GUI::Window->new(
      -title=>"Paint",
      -pos=>[100,100],
      -size=>[200,200],
      );
      $Win->AddTimer("T1", 100);

      my $DC = $Win->GetDC;
      my $Pen = Win32::GUI::Pen->new(
      -color => [255, 50, 50],
      -width => 2,
      );

      my $Brush = Win32::GUI::Brush->new(
      -color => [0, 0, 0],
      );

      $DC->SelectObject($Pen); #Pen 对象设置线条颜色
      $DC->SelectObject($Brush); #Brush 对象设置填充颜色
      $Win->Show();

      Win32::GUI::Dialog();

      sub T1_Timer
      {
      #绘制命令放在 Timer 中,使当窗体变化时能够持续显示
      $DC->Rectangle(1, 1, 100, 100);
      }


      图片
[Finished in 0.3s]

回到 “模块”

在线用户

用户浏览此论坛: 没有注册用户 和 0 访客