Imports System.Runtime.InteropServices
Public Class Form1
' 윈도우 스타일을 얻거나 설정하기 위한 상수 정의
Private Const GWL_STYLE As Integer = -16
Private Const WS_CAPTION As Integer = &HC00000
Private Const SM_CYCAPTION As Integer = 4
' GetWindowLong 함수 선언: 윈도우 스타일을 가져옴
<DllImport("user32.dll", SetLastError:=True)>
Private Shared Function GetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer) As Integer
End Function
' SetWindowLong 함수 선언: 윈도우 스타일을 설정함
<DllImport("user32.dll", SetLastError:=True)>
Private Shared Function SetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer
End Function
' GetSystemMetrics 함수 선언: 시스템 메트릭스를 가져옴
<DllImport("user32.dll")>
Private Shared Function GetSystemMetrics(ByVal nIndex As Integer) As Integer
End Function
' 타이틀바 높이를 저장할 변수
Private cycap As Integer
' 폼이 로드될 때 실행되는 코드
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
' 버튼의 텍스트를 "Nocaption"으로 설정
btnToggleCaption.Text = "Nocaption"
' 타이틀바의 높이를 가져와서 cycap 변수에 저장
cycap = GetSystemMetrics(SM_CYCAPTION)
End Sub
' 폼이 닫힐 때 실행되는 코드
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
' 현재 윈도우 스타일을 가져옴
Dim style As Integer = GetWindowLong(Me.Handle, GWL_STYLE)
' 버튼의 텍스트가 "Caption"이 아닌 경우, 타이틀바를 다시 보여줌
If btnToggleCaption.Text <> "Caption" Then
SetWindowLong(Me.Handle, GWL_STYLE, style Or WS_CAPTION)
End If
End Sub
' 버튼 클릭 시 실행되는 코드
Private Sub btnToggleCaption_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToggleCaption.Click
' 현재 윈도우 스타일을 가져옴
Dim style As Integer = GetWindowLong(Me.Handle, GWL_STYLE)
' 버튼의 텍스트가 "Nocaption"인 경우, 타이틀바를 없앰
If btnToggleCaption.Text = "Nocaption" Then
btnToggleCaption.Text = "Caption"
SetWindowLong(Me.Handle, GWL_STYLE, style And Not WS_CAPTION)
Me.Height -= cycap
Else
' 버튼의 텍스트가 "Caption"인 경우, 타이틀바를 다시 보여줌
btnToggleCaption.Text = "Nocaption"
SetWindowLong(Me.Handle, GWL_STYLE, style Or WS_CAPTION)
Me.Height += cycap
End If
End Sub
End Class
댓글 없음:
댓글 쓰기