J'apprends à ajouter une interface graphique à mon programme Perl en utilisant Win32::GUI. Maintenant, je peux changer l'icône d'une barre de titre Win32 en utilisant quelque chose comme:Comment modifier complètement l'apparence d'une barre de titre Win32 à partir de Perl?
$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,
);
Mais qu'en les autres choses, par exemple, la couleur de fond, l'apparence du bouton de réduction?
J'ai recherché sur le sujet et trouvé plusieurs articles pertinents. Ils parlent de choses comme la zone non-client paiting etc etc. mais les extraits de code semblent être tous écrits en C, avec lesquels je n'ai pas une bonne familiarité.
Je me demandais si quelqu'un ici pourrait bien partager quelques extraits de code écrits en Perl qui traitent de la même situation? Ou, y a-t-il, espérons-le, un module Perl qui peut faciliter la tâche?
Merci pour toute orientation :)
**** **** Update1
Puis-je d'abord faire la barre de titre disparaît et ajouter une étiquette où la barre de titre original était puis ajouter un peu D'autres boutons pour minimiser et fermer l'objet?
Maintenant, le problème est: comment puis-je déplacer l'objet Window lorsque ma souris est sur l'étiquette?
**** **** MAJ2
J'ai trouvé quelques extraits de code VB qui sont censés faire le travail que je veux accomplir en Perl. Quelqu'un peut-il m'aider à les réécrire dans Win32 :: GUI? Le code VB suivant est de here:
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
Vous devriez viser pour un look-and-feel compatible avec Windows en tous cas. –
alors un gars demande comment une barre de titre peut être modifiée et votre réponse est qu'elle ne devrait pas être modifiée pour commencer? donnez-lui une pause ... lol –