2010-01-25 6 views
4

Win32::GUI을 사용하여 Perl 프로그램에 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, 
); 

하지만 : 지금은 같은 것을 사용하여 Win32에서 제목 표시 줄의 아이콘을 변경할 수 있습니까?

나는 그 주제를 봤고 몇 가지 관련성있는 기사를 발견했다. 그들은 비 클라이언트 영역 paiting 등 등 물건에 대해 이야기하지만 코드 스 니펫은 모두 C로 작성된 것 같습니다, 나는 그것을 잘 알고 있지 않습니다.

여기 누군가 비슷한 상황을 처리하는 Perl로 작성된 코드 스 니펫을 친절하게 공유 할 수 있는지 궁금합니다. 아니면 작업을 쉽게 할 수있는 Perl 모듈이 있습니까? 대한 의견

감사합니다 :)

**** 갱신 1 ****

내가 먼저 제목 표시 줄을 사라지게하고 원래의 제목 표시 줄을이었다 라벨을 추가 한 다음 몇 가지를 추가 할 수 다른 버튼을 최소화하고 개체를 닫으려면?

이제 문제는 : 마우스가 레이블에있을 때 Window 객체를 어떻게 움직일 수 있습니까?

**** 내가 Perl로 수행 할 작업을 어떻게해야하는 몇 가지 VB 코드 조각을 발견했습니다

UPDATE2의 ****. 누군가 Win32에서 GUI를 재 작성하도록 친절하게 도와 줄 수 있습니까? :: GUI? 다음 VB 코드 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 
+0

어쨌든. –

+0

그래서 녀석이 어떻게 제목 표시 줄을 수정할 수 있는지 묻습니다. 그러면 대답은 처음부터 수정해서는 안된다는 것입니다. 그에게 휴식을 ... Lol –

답변

6

윈도우 수식은 사용자의 선호도에 따라 상기 운영 체제에 의해 당겨진다. 모든 응용 프로그램에서 (이상적으로) 표준화되었으며 새로운 응용 프로그램을 쉽고 빠르게 배울 수 있습니다.

또한 일부 사용자는 시력이 좋지 않거나 오래된 장치를 포함한 문제를 보완하기 위해 창 장식의 모양을 조정합니다.

기본 운영 체제의 룩앤필을 무시하는 것이 왜 나쁜지, 그리고 어떤 종류의 문제가 발생할 수 있는지를 자세히 설명하는 우수하고 주목할만한 내용이 있습니다.

운영 체제에 의해 제공되는 기존 인터페이스 컨트롤을 삼가고 결정은 다양한 문제를 생성한다. 예를 들어 제목 표시 줄을 제공하지 않기로 결정한 경우 관리 컨트롤이 손실되었습니다. Windows 사용자 은 ... 이동 최소화, 또는 플레이어 창을 최대화하는 방법으로 플레이어가 더 시각적 표시를 제공하지 않습니다 찾을 수

당신은 윈도우와 일치하는 모양과 느낌을 목표로해야한다
+0

@ 던컨, 코멘트를 남겨 주셔서 고마워 :) 글쎄, 난 제목 표시 줄을 사용자 정의 할 필요가 없습니다 알아요.하지만 C 또는 C# 등에서 Perl 튜토리얼을 사용하는 방법에 대한 좋은 자습서가 있습니다 :) – Mike

+2

@Mike - 그냥 필요하지는 않습니다 * - 나쁜 아이디어 *입니다. 고객의 관점에서 살펴보십시오. 창 장식에 대한 스타일 선택이 OS, 창 관리자 및 테마 선택보다 더 중요한 이유는 무엇입니까? '사용자 정의'방식으로 작동하는 앱을 발견하면 개발자가 나에게 무례한 것처럼 실제로 감정적 인 반응을 느낍니다. –

+0

당신의 설명은 나에게 아주 좋은 의미입니다. 감사! 나는 창 장식을 그대로 두는 편이 낫다고 확신하기 시작했습니다. 그러나 나는 아직도 Win32 API를 배워야한다고 생각한다. 어쩌면 나는 어떤 것을 할 필요가 없지만, 순수한 재미를 위해서조차도 그것을하는 것이 좋다. – Mike