+ -
当前位置:首页 → 问答吧 → 需要写一个简单的抽奖程序,请熟悉win32::gui的同学指点

需要写一个简单的抽奖程序,请熟悉win32::gui的同学指点

时间:2010-09-17

来源:互联网

Win32::GUI一直不会,朋友又请我帮他写个小的抽奖程序,只好来CU请教。

具体要求如下:
按下键盘空格键,开始在界面中央随机滚动显示清单(@picture_files)内的图片,按钮(或者是别的,如标签)文字由start改为stop,再次按下空格键停止,文字还原为start,确认对应的奖项,并提示获奖信息;抽奖规则代码,我自己可以完成,主要是GUI不会。希望熟悉Win32::GUI的多多指点。

下面做了一个简单的框架:
  1. #!/usr/bin/perl -w

  2. use strict;
  3. use warnings;

  4. use Win32::GUI();
  5. sub CW_USEDEFAULT()   {0x80000000};
  6. my $icon = new Win32::GUI::Icon('icon.ico');
  7. my $wm_class=new Win32::GUI::Class(
  8.         -name => 'test',
  9.         -icon => $icon,
  10. );

  11. my $font = Win32::GUI::Font->new(
  12.                 -name => "Arial",
  13.                 -size => 16,
  14. );


  15. my $main = Win32::GUI::Window->new(
  16.         -icon => $icon,
  17.         -title => "Limeng's Gui",
  18.         -name => 'Main',
  19.         -font => $font,
  20.         -foreground => [255, 0, 0],
  21.         -width  => 300,
  22.         -height => 200,
  23.         -left => CW_USEDEFAULT,
  24.         -class => $wm_class,
  25.         -resizable => 0,
  26.         -maximizebox => 0,
  27.         -dialogui => 1,
  28. );

  29. $main->AddButton(
  30.          -name    => 'Default',
  31.         -text    => ' Start ',
  32.          -size => [100,40],
  33.         -default => 1,    # Give button darker border
  34.         -ok      => 1,    # press 'Return' to click this button
  35.         -left    => ($main->ScaleWidth()-100) / 2,
  36.         -top     => $main->ScaleHeight() - 60,
  37.         -onClick => \&change_text,
  38. );

  39. my ($DOS) = Win32::GUI::GetPerlWindow();
  40. Win32::GUI::Hide($DOS);
  41. $main->Center();
  42. $main->Show();
  43. Win32::GUI::Dialog();
  44. $main->Hide();
  45. undef $main;
  46. exit;

  47. sub Main_Terminate {
  48.     -1;
  49. }

  50. sub change_text
  51. {
  52.         my $win = $_[0]->GetParent();
  53.          print $win;
  54.         return;
  55. }
复制代码

作者: iamlimeng   发布时间: 2010-09-17

用gtk··

作者: wfnh   发布时间: 2010-09-17