▶ 뭉충닷컴
 
mungchung.com login
Site Search
My Space
주절주절...
공부방
쥔장소개
Board
자유게시판
유용한 정보
Programming
강좌 & Articles
Spring 3.0
프로그래밍 Tip
   -ASP
   -PHP
   -JavaScript
   -HTML
   -Java/JSP
   -Database
   -Crystal Report
   -Visual Basic
   -이클립스
   -리눅스
   -기타
Windows API (VB)
Spread Sheet 7.0
컴퓨터활용 Tip
Other things
StarCraft 전략
StarCraft 문서
김용(金庸)
Son Q & Dieda

폼 제목표시줄(타이틀바)의 최소화, 최대화 버튼을 없애거나 추가하거나 하는 방법이다.

출처 : http://www.andreavb.com/tip050002.html

API Declarations
Option Explicit

Private Declare Function DeleteMenu Lib "user32.dll" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function GetSystemMenu Lib "user32.dll" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function SetWindowPos Lib "user32.dll" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nindex As Long, ByVal dwnewlong As Long) As Long
Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nindex As Long) As Long

Public Const MF_BYCOMMAND = &H0&
Public Const MF_BYPOSITION = &H400&
Public Const SC_ARRANGE = &HF110
Public Const SC_CLOSE = &HF060
Public Const SC_HOTKEY = &HF150
Public Const SC_HSCROLL = &HF080
Public Const SC_KEYMENU = &HF100
Public Const SC_MAXIMIZE = &HF030
Public Const SC_MINIMIZE = &HF020
Public Const SC_MOVE = &HF010
Public Const SC_NEXTWINDOW = &HF040
Public Const SC_PREVWINDOW = &HF050
Public Const SC_RESTORE = &HF120
Public Const SC_SIZE = &HF000
Public Const SC_VSCROLL = &HF070
Public Const SC_TASKLIST = &HF130
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Const HWND_TOP = 0
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2
Public Const GWL_STYLE = (-16)

Public Enum T_WindowStyle
    WS_BORDER = &H800000
    WS_CAPTION = &HC00000
    WS_CHILD = &H40000000
    WS_CHILDWINDOW = (WS_CHILD)
    WS_CLIPCHILDREN = &H2000000
    WS_CLIPSIBLINGS = &H4000000
    WS_DISABLED = &H8000000
    WS_DLGFRAME = &H400000
    WS_EX_ACCEPTFILES = &H10&
    WS_EX_DLGMODALFRAME = &H1&
    WS_EX_NOPARENTNOTIFY = &H4&
    WS_EX_TOPMOST = &H8&
    WS_EX_TRANSPARENT = &H20&
    WS_GROUP = &H20000
    WS_HSCROLL = &H100000
    WS_MAXIMIZE = &H1000000
    WS_MAXIMIZEBOX = &H10000
    WS_MINIMIZE = &H20000000
    WS_MINIMIZEBOX = &H20000
    WS_OVERLAPPED = &H0&
    WS_ICONIC = WS_MINIMIZE
    WS_POPUP = &H80000000
    WS_VISIBLE = &H10000000
    WS_VSCROLL = &H200000
    WS_SYSMENU = &H80000
    WS_TABSTOP = &H10000
    WS_THICKFRAME = &H40000
    WS_TILED = WS_OVERLAPPED
    WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or          WS_MAXIMIZEBOX)
    WS_POPUPWINDOW = (WS_POPUP Or WS_BORDER Or WS_SYSMENU)
    WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW
    WS_SIZEBOX = WS_THICKFRAME
End Enum



Module
'Brings the specified form in the top most position, it will be over all other
'forms in the screen, even if they will receive the focus
Public Sub FormTopMost(hWnd As Long)
    SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE + SWP_NOMOVE
End Sub

'Brings the form in his standard Z-Order
Public Sub FormNoTopMost(hWnd As Long)
    SetWindowPos hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE + SWP_NOMOVE
End Sub

'Brings the form in the top position of the Z-Order, if another form takes the
'focus it will become the new top form
Public Sub FormTop(hWnd As Long)
    SetWindowPos hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE + SWP_NOMOVE
End Sub

'Remove the form's system menu, if RemoveClose is true the Close command inside the
'menu is removed too, in this case even the X key in the right upper cornet of the
'form will be removed
Public Sub RemoveSystemMenu(hWnd As Long, RemoveClose As Boolean)
    Dim hMenu As Long

    hMenu = GetSystemMenu(hWnd, False)
    DeleteMenu hMenu, SC_MAXIMIZE, MF_BYCOMMAND
    DeleteMenu hMenu, SC_MINIMIZE, MF_BYCOMMAND
    DeleteMenu hMenu, SC_SIZE, MF_BYCOMMAND
    DeleteMenu hMenu, SC_MOVE, MF_BYCOMMAND
    DeleteMenu hMenu, SC_RESTORE, MF_BYCOMMAND
    DeleteMenu hMenu, SC_NEXTWINDOW, MF_BYCOMMAND
    If RemoveClose Then
        DeleteMenu hMenu, SC_CLOSE, MF_BYCOMMAND
        DeleteMenu hMenu, 0, MF_BYPOSITION
    End If
End Sub

'Hides the upper right keys Maximize and minimize
Public Sub RemoveMaxMinButtons(hWnd As Long)
    Dim x As Long

    x = GetWindowLong(hWnd, GWL_STYLE)
    x = x And Not WS_MINIMIZEBOX
    x = x And Not WS_MAXIMIZEBOX
    SetWindowLong hWnd, GWL_STYLE, x
End Sub

'Shows the upper right keys Maximize and minimize
Public Sub AddMaxMinButtons(hWnd As Long)
    Dim x As Long

    x = GetWindowLong(hWnd, GWL_STYLE)
    x = x Or WS_MINIMIZEBOX
    x = x Or WS_MAXIMIZEBOX
    SetWindowLong hWnd, GWL_STYLE, x
End Sub

'Set the attribute of a window: the module has a public enum type that contains
'all the constants to define a window style (used by others Subs)
Public Sub SetWindowStyle(hWnd As Long, mAttribute As T_WindowStyle, Enable As Boolean)
    Dim x As Long

    x = GetWindowLong(hWnd, GWL_STYLE)
    If Enable Then
        x = x Or mAttribute
    Else
        x = x And Not mAttribute
    End If
    SetWindowLong hWnd, GWL_STYLE, x
End Sub

문서 첨부 제한 : 0Byte/ 2.00MB
파일 크기 제한 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
431 JAVA java의 xml document 의 노드 내용 읽기 뭉충닷컴 2009-11-03 16195
430 기타 apache(아파치), tomcat(톰캣) 심볼릭링크 사용하기 뭉충닷컴 2009-10-27 13182
429 이클립스 이클립스 단축키 공부 플러그인 file 뭉충닷컴 2009-10-21 14260
428 JAVA xml document의 내용 뿌리기 뭉충닷컴 2009-09-28 10888
427 이클립스 Syntax error, parameterized types are only available if source level is 5.0 file 뭉충닷컴 2009-09-22 17005
426 이클립스 Java compiler level does not match the version of the installed Java project facet file 뭉충닷컴 2009-09-22 19846
425 기타 Eclipse 설정: TEST, SVN, LIVE 서버 구성과 작업방식 비교 뭉충닷컴 2009-09-08 11024
424 기타 아파치 설정에서 특정 디렉토리 접근 금지 뭉충닷컴 2009-09-03 12418
423 리눅스 svn 사용할때 proxy 서버 이용하기 뭉충닷컴 2009-09-03 11327
422 JAVA http 인증 하기 뭉충닷컴 2009-09-03 12098
421 리눅스 crontab에 등록한 작업 로그보기 [2] 뭉충닷컴 2009-08-28 11312
420 리눅스 crontab에서 톰캣서버 시작하기 뭉충닷컴 2009-08-26 9816
419 리눅스 톰캣 프로세스 pid 파일로 저장 및 강제종료 뭉충닷컴 2009-08-26 16808
418 리눅스 리눅스에서 특정문자열이 들어간 프로세스 죽이기 뭉충닷컴 2009-08-26 12296
417 기타 firefox로 sql injection, xss 점검하기 뭉충닷컴 2009-08-10 10876
416 DataBase log4j sql formatter 뭉충닷컴 2009-07-16 12005
415 DataBase 트리구조의 데이터 검색하기 뭉충닷컴 2009-06-30 9877
414 PHP php용 디자인 패턴 소스 뭉충닷컴 2009-06-17 12465
» VB 폼의 제목표시줄 최소화, 최대화버튼 다루기 뭉충닷컴 2009-06-16 15074
412 리눅스 리눅스에서 부팅시 자동으로 데몬을 띄우는 법 뭉충닷컴 2009-06-15 10643
411 JAVA StyledText 에 undo/redo 기능 넣기 뭉충닷컴 2009-06-05 12518
410 JAVA ant 빌드시 proxy 서버 사용하기 뭉충닷컴 2009-05-27 9543
409 이클립스 Text swt에 키보드 이벤트 ctrl + a 적용하기 뭉충닷컴 2009-05-24 16511
408 DataBase 오라클 사용자정의 함수 인자들의 default value 값 가져오디 뭉충닷컴 2009-05-15 14211
407 DataBase 10g 공백제거 정규표현식입니다. 뭉충닷컴 2009-05-15 15444
406 리눅스 rm -rf * 잘못 쳤을 때 울지 않기 뭉충닷컴 2009-05-15 8539
405 이클립스 dialog 창 크기조절 가능하도록(resize) 뭉충닷컴 2009-05-09 17588
404 JAVA 자바에서 외부 프로그램 실행방법 [1] 뭉충닷컴 2009-05-08 17258
403 이클립스 이클립스에서 열려진 파일들의 경로 알기 뭉충닷컴 2009-05-08 12909
402 이클립스 현재 워크스페이스의 경로 가져오기 뭉충닷컴 2009-05-08 14417
401 이클립스 이클립스 플러그인 개발에서 열려진 모든 창 닫기 뭉충닷컴 2009-05-08 12753
400 이클립스 이클립스 플러그인 개발 기초 강좌 file 뭉충닷컴 2009-05-08 12759
399 DataBase 오라클 UPDATE JOIN 뭉충닷컴 2009-05-07 19591
398 JAVA url 접속해서 html 내용 가져오기 뭉충닷컴 2009-05-06 16043
397 리눅스 리눅스 shell script로 날짜별로 로그파일 지우기 뭉충닷컴 2009-04-29 21863
396 리눅스 리눅스 csh(shell) script 뭉충닷컴 2009-04-28 10407
395 JAVA WEB-INF 의 실제 경로 구하기 뭉충닷컴 2009-04-09 13023
394 JAVA proxy 서버를 통해서 url 접속(connection) 하기 뭉충닷컴 2009-04-09 9606
393 JAVA WEB-INF/classes 의 클래스 정보 읽기 file 뭉충닷컴 2009-04-06 10150
392 Script jQuery를 이용한 xml 데이터 sort(정렬) 뭉충닷컴 2009-03-14 12617
391 Script jQuery sort 플러그인 file 뭉충닷컴 2009-03-14 13577
390 Script jQuery 마우스 오른쪽 버튼 메뉴 file 뭉충닷컴 2009-03-14 13639
389 Script jQuery drag and drop 플러그인 file 뭉충닷컴 2009-03-14 16136
388 리눅스 리눅스 터미널 접속시 한글 안나올경우 뭉충닷컴 2009-03-12 8628
387 Script 익스 6,7 확인 메시지 없이 창 닫기 뭉충닷컴 2009-03-05 8988
386 DataBase 오라클의 sequence 시작값 초기화 또는 변경 하기 뭉충닷컴 2009-02-23 21010
385 Script 마우스 오른쪽클릭방지 해제 스크립트 뭉충닷컴 2009-02-12 9749
384 기타 (WebSphere) 두 개의 datasource 선택해서 사용하기 뭉충닷컴 2009-02-11 8495
383 기타 (WebSphere) WAS5.0 Base Edition에서 하나이상 서버만들기 뭉충닷컴 2009-02-09 7791
382 기타 (WebSphere)WAS 운영 시 유용한 환경변수,명령어,쉘 모음 프로젝트 file 뭉충닷컴 2009-02-09 9608
381 JAVA 소스보기한 파일을 hex 편집기로 열었을때 EFBBBF 라 나올 경우 뭉충닷컴 2009-01-08 10077
380 Script xml javascript dom(xml 정보보기) 뭉충닷컴 2009-01-08 8652
379 Script textarea 드래그(drag)로 사이즈 조절(resize)하기 file [1] 뭉충닷컴 2008-12-26 11277
378 리눅스 리눅스에서 특정파일(확장자) 제외하고 삭제하기 [1] 뭉충닷컴 2008-12-22 13452
377 기타 utf-8 에 관한 위키 링크 뭉충닷컴 2008-12-10 6489
376 기타 tar 압축 / 해제 뭉충닷컴 2008-12-04 11603
375 Script firefox에서 insertAdjacentHTML, insertAdjacentText 이용하기 뭉충닷컴 2008-12-03 9869
374 기타 A cross-domain policy file is an XML document that grants a web client—such as Adobe Flash Player (though not necessarily limited to it)—permission to handle data across multiple domains. [1] 장태준 2008-12-03 8086
373 Script onload 여러번 하기.. 자스 함수 뭉충닷컴 2008-11-26 6921
372 기타 소스코드 라인수 측정하기 file [1] 뭉충닷컴 2008-11-18 12206