Chinaunix

标题: 求助:请熟悉Win32::GUI的大侠帮忙看如何实现listview里项目的双击。 [打印本页]

作者: tsunami_liao    时间: 2013-09-06 18:00
标题: 求助:请熟悉Win32::GUI的大侠帮忙看如何实现listview里项目的双击。
我用代码生成了一个listview,并添加了我想要的数据,但是我不知道怎么实现双击,并且获取到所双击的行的第一列的内容。

查了网络试过ItemClick,DblClick什么的事件好像都无效。

难道是我在Windows7 x64上的原因?

Perl 是5.10.1,Win32::GUI是1.06的。

请大侠帮忙看看,如果能提供简单的例子最好。

谢谢了。
作者: iamlimeng    时间: 2013-09-07 13:06
  1. #!/usr/bin/perl

  2. use strict;
  3. use warnings;
  4. use Win32::GUI qw( MB_ICONINFORMATION MB_OK );

  5. my $main = Win32::GUI::Window->new(
  6.         -title => " Listvew Test",
  7.         -size  => [700,400],
  8.         -maximizebox        => 0,
  9.         -dialogui        => 1,
  10.         -noflicker        => 1,
  11. );

  12. $main->AddListView(
  13.         -name      => "lv",
  14.         -left   => 10,
  15.         -top    => 10,
  16.         -width     => 660,
  17.         -height    => 330,
  18.         -fullrowselect => 1,
  19.         -gridlines => 1,
  20.         -hottrack   => 1,
  21.         -onDblClick => \&GetInfo,

  22. );
  23. my @col = qw/num id status/;
  24. $main->lv->InsertColumn(-text=>"Name",-width=>200,-align => "center",);
  25. $main->lv->InsertColumn(-text=>"Sex",-width=>200,-align => "center",);
  26. $main->lv->InsertColumn(-text=>"Age",-width=>200,-align => "center",);
  27. $main->lv->InsertItem(-item =>0,-text=>["Wang","M","22"]);
  28. $main->lv->InsertItem(-item =>1,-text=>["Liu","F","33"]);

  29. $main->lv->View(1);
  30. $main->Center();
  31. $main->Show();
  32. Win32::GUI::Dialog();
  33. $main->Hide();
  34. undef $main;
  35. exit(0);

  36. sub Window_Terminate {
  37.         return -1;
  38. }

  39. sub GetInfo {
  40.         my $self = shift;
  41.          my $info = $main->lv->GetItemText($main->lv->GetHotItem(),0);
  42.         $self->MessageBox($info,"Get Info",MB_ICONINFORMATION | MB_OK,);
  43.         return 0;
  44. }
复制代码
这个我弄过,代码供你参考,希望能帮到你!
作者: tsunami_liao    时间: 2013-09-08 21:06
iamlimeng 发表于 2013-09-07 13:06
这个我弄过,代码供你参考,希望能帮到你!


非常感谢您的帮助,参考你的代码,已经实现了我所需要的功能。

请问您是否有些关于Win32 GUI的资料?官方的文档太简单,不知道哪里能找到一些更好的学习资料。谢谢!
作者: zhlong8    时间: 2013-09-08 21:33
回复 3# tsunami_liao


    推荐这个http://winprog.org/tutorial/zh/start_cn.html只学这个模块怎么用没什么意思,了解下它封装了什么自然就可以灵活运用。
作者: tsunami_liao    时间: 2013-09-09 09:30
zhlong8 发表于 2013-09-08 21:33
回复 3# tsunami_liao


非常感谢,由于我不是专业的程序员,所以可能对我来说看这些有点难度。
不过由于以前曾经有过使用vb6.0做过一些小项目(10年前的事情了),所以对win32 api也有一点点了解,对窗口和事件这些也有些了解。只是换成perl win32后有点不适应,有些事件和属性找不到对应的接口了。

当然我也正在考虑是否要用回vb,但是我的知识点是很多年前的vb6.0,用它是不实际了,现在应该用vb.net了吧,不过vb.net对于vb来说改变好像还真不少。而且我之前的数据都是在unix平台的perl采集和分析的,换到windows上处理比较麻烦,少了perl的正则和hash不知道如何才能更高效?
作者: zhlong8    时间: 2013-09-09 10:53
回复 5# tsunami_liao


    这个模块是有带有很多文档的只不过要自己编译才会生成 html 的,cpan.org 上找不到的
作者: iamlimeng    时间: 2013-09-09 11:47
Win32 GUI的资料真的很少,网上也找不到,随模块的文档也不是特别详细,模块附了一些DEMO可以参考,主要靠自己摸索和查MS的相关文档。
作者: tsunami_liao    时间: 2013-09-09 14:03
谢谢楼上两位的热心答复了。

看来我只有自己慢慢摸索一下了。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2