如何使用 Win32::GUI 和 WM_DISPLAYCHANGE 检测 window 调整大小事件?
How can I detect window resize event using Win32::GUI and WM_DISPLAYCHANGE?
我正在努力做一个简单的接收 WM_DISPLAYCHANGE
通知我的 Win32::GUI 应用 Windows 屏幕分辨率已经改变,因为这个问题的结果相应地是“0”由搜索引擎通知。
您能否提供一个简单的 Win32::GUI
程序的简单工作示例,该程序检测 WM_DISPLAYCHANGE
消息并打印有关分辨率更改的一些信息?
为您的 window 命名。我们称它为 Main
。
$main = Win32::GUI::Window->new(
-name => 'Main',
-width => 100,
-height => 100,
);
现在,为 window 定义事件处理程序。它应该是以下模式:
<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。
来自 PerlMonks 的用户 "beech":http://perlmonks.org/index.pl?node_id=1171819
Try using the Hook method:
something like
$main->Hook( WM_DISPLAYCHANGE(), \&onDisplayChange );
sub onDisplayChange {
my( $object, $wParam, $lParam, $type, $msgcode) = @_;
print "Click handler called!\n";
}
我正在努力做一个简单的接收 WM_DISPLAYCHANGE
通知我的 Win32::GUI 应用 Windows 屏幕分辨率已经改变,因为这个问题的结果相应地是“0”由搜索引擎通知。
您能否提供一个简单的 Win32::GUI
程序的简单工作示例,该程序检测 WM_DISPLAYCHANGE
消息并打印有关分辨率更改的一些信息?
为您的 window 命名。我们称它为 Main
。
$main = Win32::GUI::Window->new(
-name => 'Main',
-width => 100,
-height => 100,
);
现在,为 window 定义事件处理程序。它应该是以下模式:
<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。
来自 PerlMonks 的用户 "beech":http://perlmonks.org/index.pl?node_id=1171819
Try using the Hook method:
something like
$main->Hook( WM_DISPLAYCHANGE(), \&onDisplayChange ); sub onDisplayChange { my( $object, $wParam, $lParam, $type, $msgcode) = @_; print "Click handler called!\n"; }