자료실

부자는 돈을 써서 시간을 아끼지만 가난한 사람은 시간을 써서 돈을 아낀다

vb.net

IT HUB를 찾아주셔서 감사합니다.

기타 [vb.net] Form 전체화면 실행 시 Window작업표시줄 숨기는방법

페이지 정보

profile_image
작성자 하나를하더라도최선을
댓글 0건 조회 1,144회 작성일 24-06-03 18:15

본문

주어진 코드는 윈도우 폼을 사용하여 사용자 지정 닫기 버튼이 있는 풀스크린 애플리케이션을 만드는 예시입니다.

d3352cacf9e284a757626685bdad2d54_1717406049_0598.png
 

Imports System.Runtime.InteropServices
 
Public Class fMain
 
    ' 윈도우 API 함수 선언
    <DllImport("user32.dll")>
    Private Shared Function FindWindow(lpClassName As String, lpWindowName As StringAs IntPtr
    End Function
 
    <DllImport("user32.dll", SetLastError:=True)>
    Private Shared Function SetWindowPos(ByVal hWnd As IntPtr, ByVal hWndInsertAfter As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal uFlags As SetWindowPosFlags) As Boolean
    End Function
 
    ' SetWindowPos 함수의 플래그 열거형
    <Flags>
    Private Enum SetWindowPosFlags As UInteger
        SynchronousWindowPosition = &H4000
        DeferErase = &H2000
        DrawFrame = &H20
        FrameChanged = &H20
        HideWindow = &H80
        DoNotActivate = &H10
        DoNotCopyBits = &H100
        IgnoreMove = &H2
        DoNotChangeOwnerZOrder = &H200
        DoNotRedraw = &H8
        DoNotReposition = &H200
        DoNotSendChangingEvent = &H400
        IgnoreResize = &H1
        IgnoreZOrder = &H4
        ShowWindow = &H40
    End Enum
 
    ' 사용자 지정 닫기 버튼 PictureBox
    Private cmd_close As PictureBox
 
    ' 폼이 로드될 때 발생하는 이벤트 처리기
    Private Sub fMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' 사용자 지정 닫기 버튼 생성
        cmd_close = New PictureBox
        cmd_close.Image = My.Resources.ResourceManager.GetObject("close"' 리소스에서 이미지 가져오기
        cmd_close.Size = New Size(1717' 크기 설정
        cmd_close.SizeMode = PictureBoxSizeMode.Zoom ' 이미지 크기 조정 방법 설정
        Me.Controls.Add(cmd_close) ' 폼에 PictureBox 추가
        ' 사용자 지정 닫기 버튼 클릭 이벤트 핸들러 추가
        AddHandler cmd_close.Click, Sub(xs As Object, xe As EventArgs)
                                        Application.Exit() ' 애플리케이션 종료
                                    End Sub
 
        ' 폼 설정
        Me.FormBorderStyle = FormBorderStyle.None ' 테두리 스타일 없음
        Dim window As IntPtr = FindWindow("Shell_traywnd"""' 작업 표시줄 찾기
        SetWindowPos(window, IntPtr.Zero, 0000, SetWindowPosFlags.HideWindow) ' 작업 표시줄 숨기기
        Me.WindowState = FormWindowState.Maximized ' 최대화
        Me.TopMost = True ' 항상 위에 표시
    End Sub
 
    ' 폼이 Dispose될 때 발생하는 이벤트 처리기
    Private Sub MyBase_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
        Dim window As IntPtr = FindWindow("Shell_traywnd"""' 작업 표시줄 찾기
        SetWindowPos(window, IntPtr.Zero, 0000, SetWindowPosFlags.ShowWindow) ' 작업 표시줄 다시 표시
    End Sub
 
    ' 폼 크기 조정 이벤트 처리기
    Private Sub fMain_Resize(sender As Object, e As EventArgs) Handles Me.Resize
        Dim S As Size = Me.ClientRectangle.Size ' 클라이언트 영역 크기 가져오기
        If cmd_close IsNot Nothing Then cmd_close.Location = New Point(S.Width - cmd_close.Width - 1515' 사용자 지정 닫기 버튼 위치 설정
    End Sub
 
End Class
 
위 코드에서는 FindWindowSetWindowPos와 같은 윈도우 API 함수를 사용하여 작업 표시줄을 숨기거나 표시합니다.
사용자 지정 닫기 버튼을 클릭하면 애플리케이션이 종료됩니다. 폼이 로드되면 작업 표시줄이 숨겨지고, 폼이 닫힐 때 작업 표시줄이 다시 표시됩니다.
사용자 지정 닫기 버튼은 폼의 우측 상단에 표시됩니다.


댓글목록

등록된 댓글이 없습니다.