CAFE

vb6 api

DrawFrameControl의 컨트롤모양보기 DrawFrameControl

작성자올란도|작성시간09.01.29|조회수469 목록 댓글 0

1. 모듈에 다음의 API 와 상수를 선언합니다.

Public Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
     
Public Const DFC_CAPTION = 1                    'Title bar
Public Const DFC_MENU = 2                       'Menu
Public Const DFC_SCROLL = 3                     'Scroll bar
Public Const DFC_BUTTON = 4                     'Standard button
Public Const DFCS_CAPTIONCLOSE = &H0            'Close button
Public Const DFCS_CAPTIONMIN = &H1              'Minimize button
Public Const DFCS_CAPTIONMAX = &H2              'Maximize button
Public Const DFCS_CAPTIONRESTORE = &H3          'Restore button
Public Const DFCS_CAPTI[안내]태그제한으로등록되지않습니다-ONHELP = &H4             'Windows 95 only Help button
Public Const DFCS_MENUARROW = &H0               'Submenu arrow
Public Const DFCS_MENUCHECK = &H1               'Check mark
Public Const DFCS_MENUBULLET = &H2              'Bullet
Public Const DFCS_MENUARROWRIGHT = &H4
Public Const DFCS_SCROLLUP = &H0                'Up arrow of scroll bar
Public Const DFCS_SCROLLDOWN = &H1              'Down arrow of scroll bar
Public Const DFCS_SCROLLLEFT = &H2              'Left arrow of scroll bar
Public Const DFCS_SCROLLRIGHT = &H3             'Right arrow of scroll bar
Public Const DFCS_SCROLLCOMBOBOX = &H5          'Combo box scroll bar
Public Const DFCS_SCROLLSIZEGRIP = &H8          'Size grip
Public Const DFCS_SCROLLSIZEGRIPRIGHT = &H10    'Size grip in bottom-right corner of window
Public Const DFCS_BUTTONCHECK = &H0             'Check box
Public Const DFCS_BUTTONRADIO = &H4             'Radio button
Public Const DFCS_BUTTON3STATE = &H8            'Three-state button
Public Const DFCS_BUTTONPUSH = &H10             'Push button
Public Const DFCS_INACTIVE = &H100              'Button is inactive (grayed)
Public Const DFCS_PUSHED = &H200                'Button is pushed
Public Const DFCS_CHECKED = &H400               'Button is checked
Public Const DFCS_ADJUSTRECT = &H2000           'Bounding rectangle is adjusted to exclude the
                                                'surrounding edge of the
                                                'push button
Public Const DFCS_FLAT = &H4000                 'Button has a flat border
Public Const DFCS_MONO = &H8000                 'Button has a monochrome border
Public Declare Function DrawFrameControl Lib "user32" _
              (ByVal hDC&, _
               lpRect As RECT, _
               ByVal un1 As Long, _
               ByVal un2 As Long) As Boolean

2. 폼의 Load 이벤트에 다음과 같이 코딩하시기 바랍니다.

Private Function MakeRect(l As Long, t As Long, w As Long, h As Long) As RECT
    With MakeRect
        .Left = l
        .Top = t
        .Right = l + w
        .Bottom = t + h
    End With
End Function
     
Private Sub Form_Load()
    ScaleMode = vbPixels
    AutoRedraw = True      'Captions
   
    ' 닫기 버튼
    DrawFrameControl hDC, MakeRect(10, 10, 15, 15), DFC_CAPTION, DFCS_CAPTIONCLOSE
    DrawFrameControl hDC, MakeRect(10, 30, 15, 15), DFC_CAPTION, DFCS_CAPTIONRESTORE
    DrawFrameControl hDC, MakeRect(10, 50, 15, 15), DFC_CAPTION, DFCS_CAPTIONMAX Or DFCS_INACTIVE
  ' Menus
    DrawFrameControl hDC, MakeRect(30, 10, 15, 15), DFC_MENU, DFCS_MENUARROW
    DrawFrameControl hDC, MakeRect(30, 30, 15, 15), DFC_MENU, DFCS_MENUCHECK
    DrawFrameControl hDC, MakeRect(30, 50, 15, 15), DFC_MENU, DFCS_MENUBULLET
  ' 스크롤바
    DrawFrameControl hDC, MakeRect(50, 10, 15, 15), DFC_SCROLL, DFCS_SCROLLUP
    DrawFrameControl hDC, MakeRect(50, 30, 15, 15), DFC_SCROLL, DFCS_SCROLLSIZEGRIP
    DrawFrameControl hDC, MakeRect(50, 50, 15, 15), DFC_SCROLL, DFCS_SCROLLRIGHT Or DFCS_INACTIVE
  ' Checkboxes
    DrawFrameControl hDC, MakeRect(70, 10, 15, 15), DFC_BUTTON, DFCS_BUTTONCHECK
    DrawFrameControl hDC, MakeRect(70, 30, 15, 15), DFC_BUTTON, DFCS_BUTTONCHECK Or DFCS_CHECKED
    DrawFrameControl hDC, MakeRect(70, 50, 15, 15), DFC_BUTTON, DFCS_BUTTONCHECK Or DFCS_CHECKED Or DFCS_BUTTON3STATE
  ' Option Buttons
    DrawFrameControl hDC, MakeRect(90, 10, 15, 15), DFC_BUTTON, DFCS_BUTTONRADIO
    DrawFrameControl hDC, MakeRect(90, 30, 15, 15), DFC_BUTTON, DFCS_BUTTONRADIO Or DFCS_CHECKED
    DrawFrameControl hDC, MakeRect(90, 50, 15, 15), DFC_BUTTON, DFCS_BUTTONRADIO Or DFCS_CHECKED Or DFCS_FLAT
  ' Push Button
    DrawFrameControl hDC, MakeRect(110, 10, 50, 20), DFC_BUTTON, DFCS_BUTTONPUSH
    DrawFrameControl hDC, MakeRect(110, 40, 50, 20), DFC_BUTTON, DFCS_BUTTONPUSH Or DFCS_PUSHED
End Sub

3. 위와 같이 한후 실행을 해보세요. 폼에 각종 기본콘트롤 모양의 그림이 보일것
   입니다.
 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼