如何从Perl中彻底更改Win32标题栏的外观?
我正在学习使用
Win32::GUI将GUI添加到我的Perl程序.现在我可以使用以下内容更改Win32标题栏的图标:
$myicon = new Win32::GUI::Icon('myicon.ico'); $myclass=new Win32::GUI::Class( -name=>'myclass',-icon=>$myicon,); $mydialogbox = new Win32::GUI::DialogBox( -name => 'mydialogbox',-class => $myclass,); 但是,其他的东西,比如背景颜色,最小化按钮的外观和感觉呢? 我搜索了这个主题并找到了几篇可能相关的文章.他们谈论非客户区域等等的东西,但代码片段似乎都是用C语言编写的,我对此并不熟悉. 我想知道是否有人在这里可以分享一些用Perl编写的代码片段来处理类似的情况?或者,希望是否有可以促进任务的Perl模块? 谢谢你的任何指导:) **** **** UPDATE1 我可以先使标题栏消失,然后在原始标题栏中添加标签,然后添加一些其他按钮以最小化和关闭对象吗? 现在的问题是:当我的鼠标在标签上时,如何移动Window对象? **** **** UPDATE2 我发现了一些VB代码片段应该完成我想要在Perl中完成的工作.有人可以帮我在Win32 :: GUI中重写它们吗? Option Explicit ' API functions Private Declare Function ReleaseCapture Lib "user32" () As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long,ByVal wMsg As Long,ByVal wParam As Long,lParam As Any) As Long Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long,ByVal lpString As String) As Long ' Constants for above API calls Private Const HTCAPTION = 2 Private Const WM_NCLBUTTONDOWN = &HA1 Private Sub Form_Load() Dim retVal As Long retVal = SetWindowText(Me.hwnd,Label1) End Sub Private Sub Label1_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) ReleaseCapture SendMessage hwnd,WM_NCLBUTTONDOWN,HTCAPTION,0& End Sub 解决方法
窗口装饰由操作系统根据用户的偏好绘制.它们(理想情况下)适用于所有应用程序,并使学习新应用程序变得快速而简单.
此外,一些用户调整窗户装饰的外观以补偿视力不佳或旧设备等问题. 有一个非常重要且非常关键的writeup of QuickTime 4.0 on the UI Hall of Shame详细说明,解释了为什么覆盖默认操作系统的外观和感觉很糟糕,以及它可能导致什么样的问题.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |