[Visual Basic]Frame 3부






셰이프


셰이프 컨트롤은 다양한 다각형을 보여주는 시각적인 컨트롤이므로 포커스를 가질 수 없습니다. Shape속성을 이용하여 6가지 형태의 다각형을 그릴 수 있는데 다음과 같습니다.



[Shape 속성으로 그릴 수 있는 다각형 화면]



다각형의 내부를 색칠하려면 BackStyle속성의 '0-투명'에서 '1-투명하지않음'을 선택하면 됩니다. 내부에 색칠된 색깔을 바꾸려면 BackColor속성을 바꾸면 됩니다.


셰이프 컨트롤은 다각형만을 그릴 수 있는 것만 아니라 다양한 채색무늬를 제공합니다. Fillstyle속성을 이용하여 8가지 종류의 채색무늬를 나타낼 수 있고 FillColor속성을 이용하여 채색무늬의 색을 변경할 수 있습니다.


BorderStyle속성으로 셰이프 컨트롤의 테두리선 종류를 7가지 형태로 바꿀 수 있는데, 다음화면과 같습니다.



셰이프를 이용한 모양 바꾸기 프로그램 예제

[폼 작성 화면]


다각형모양의 콤보박스로는 다각형을 선택하여 모양을 변경할 수 있고, 내부모양의 콤보박스로는 다각형의 내부 스타일을 변경할 수 있습니다.


컨트롤 종류

컨트롤 이름

속 성

설 정

Frame1

Caption

""

콤보박스

Combo1

Text

""

Combo2

Text

""

명령버튼

Command1

Caption

"종료"

Style

"1-그래픽"

Picture

"Close.Bmp"

셰이프

Shape

Stretch

True6

 

콤보박스를 변경하여 다각형 모양 바꾸기

Shape속성의 번호와 동일한 순서대로 콤보박스 컨트롤에 추가하면, Shape번호와 콤보박스 컨트롤의 ListIndex번호가 동일하게 됩니다. 그러므로 콤보박스 컨트롤의 Click이벤트에 넣으면 콤보박스 컨트롤을 변경할 때마다 셰이프 컨트롤의 다각형 모양도 변경됩니다.



Private Sub Combo1_Click()

Shape1.Shape = Combo1.ListIndex

End Sub

 

FillStyle속성도 동일한 방법으로 다음과 같이 하면 됩니다.


Private Sub Combo2_Click()

Shape1.FillStyle = Combo2.ListIndex

End Sub


다음은 셰이프를 이용한 모양 바꾸기 프로그램의 전체 소스입니다.


' 콤보박스에서 변경한 현재 인덱스번호로

' Shape속성을 변경한다.

Private Sub Combo1_Click()

Shape1.Shape = Combo1.ListIndex

End Sub

' 콤보박스에서 변경한 현재 인덱스번호로

' FillStyle속성을 변경한다.

Private Sub Combo2_Click()

Shape1.FillStyle = Combo2.ListIndex

End Sub

' 프로그램을 종료한다.

Private Sub Command1_Click()

End

End Sub

Private Sub Form_Load()

' 폼이 화면 중심에 출력한다.

Left = (Screen.Width - Width) / 2

Top = (Screen.Height - Height) / 2

Combo1.AddItem "사각형"

Combo1.AddItem "정사각형"

Combo1.AddItem "타원형"

Combo1.AddItem "원형"

Combo1.AddItem "둥근사각형"

Combo1.AddItem "둥근정사각형"

' 셰이프 컨트롤의 Shape속성의 초기 값을 읽어온 후

' 콤보박스의 Text속성에 출력한다.

Combo1.Text = Combo1.List(Shape1.Shape)

Combo2.AddItem "단색"

Combo2.AddItem "투명"

Combo2.AddItem "수평선"

Combo2.AddItem "수직선"

Combo2.AddItem "상향대각선"

Combo2.AddItem "하향대각선"

Combo2.AddItem "교차"

Combo2.AddItem "대각선교차"

' 셰이프 컨트롤의 FillStyle속성의 초기값을 읽어온 후

' 콤보박스의 Text속성에 출력한다.

Combo2.Text = Combo2.List(Shape1.FillStyle)

End Sub


[다각형모양]을 선택하면 셰이프 컨트롤이 지원하는 다각형을 그릴 수 있고 [내부모양]을 선택하면 다각형의 내부의 색칠 스타일을 변경할 수 있습니다. 다음화면은 원형과 수직선을 선택한 화면입니다.


[실행 화면]


콤보박스의 리스트 항목을 추가하는 방법은 리스트박스와 동일하므로 [리스트박스]를 참고 하시기 바랍니다.






Reactions

댓글 쓰기

0 댓글