我正在努力简单地接收WM_DISPLAYCHANGE
通知我的Win32::GUI应用Windows屏幕分辨率已更改,因为此处此问题的结果为“0”,相应地由搜索引擎通知。
您是否可以提供一个简单的Win32::GUI
程序的简单工作示例,该程序会检测WM_DISPLAYCHANGE
消息并打印有关该分辨率更改的信息?
答案 0 :(得分:2)
来自用户"山毛榉"在PerlMonks:http://perlmonks.org/index.pl?node_id=1171819
尝试使用Hook方法:
类似
$main->Hook( WM_DISPLAYCHANGE(), \&onDisplayChange ); sub onDisplayChange { my( $object, $wParam, $lParam, $type, $msgcode) = @_; print "Click handler called!\n"; }
答案 1 :(得分:0)
为您的窗口命名。我们称之为Main
。
$main = Win32::GUI::Window->new(
-name => 'Main',
-width => 100,
-height => 100,
);
现在,为窗口定义一个事件处理程序。它应该低于模式:
<window name>_<event name>
例如,对于Resize事件,事件处理程序应为Main_Resize。
sub Main_Resize {
my $mw = $main->ScaleWidth();
my $mh = $main->ScaleHeight();
my $lw = $label->Width();
my $lh = $label->Height();
#print the height/width or whatever you want
}
我建议您浏览Win32::GUI::Tutorial。