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

回复
头像
PerlMonk
渐入佳境
渐入佳境
帖子: 49
注册时间: 2016年09月19日 10:20
联系:

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

帖子 PerlMonk »

[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]
回复

在线用户

正浏览此版面之用户: 没有注册用户 和 1 访客