570 likes | 869 Views
Chap 7. ActiveX 컨트롤 배우기. 01. 도구 상자에 컨트롤 추가하기 02. MicroSoft Common Dialog Control 6.0 03. MicroSoft FlexGrid Control 6.0 04. MicroSoft Hierachical FlexGrid Control 6.0. OCX 컨트롤과 ActiveX 컨트롤. VBX(Visual Basic eXtensions) 비주얼 베이직 3.0 이전에 사용하던 컨트롤 비주얼 베이직에만 사용할 수 있는 16 비트 컨트롤
E N D
01. 도구 상자에 컨트롤 추가하기02. MicroSoft Common Dialog Control 6.0 03. MicroSoft FlexGrid Control 6.0 04. MicroSoft Hierachical FlexGrid Control 6.0
OCX 컨트롤과 ActiveX 컨트롤 • VBX(Visual Basic eXtensions) • 비주얼 베이직 3.0 이전에 사용하던 컨트롤 • 비주얼 베이직에만 사용할 수 있는 16비트 컨트롤 • OLE(Object Linking and Embeding) • 어떤 애플리케이션에서 작성된 정보를 다른 애플리케이션에 연결시킨다. • OLE의 데이터 공유에는 연계(linking)와 매입(embedding) 2가지가 있다. • OCX(OLE Control eXtentions) 컨트롤 • 윈도우 95 표준 운영체제의 다른 프로그램 개발 툴에서 모두 사용할 수 있는 컨트롤 (32 비트 컨트롤) • ActiveX 컨트롤 • OCX를 인터넷에서 쉽고 안전하게 사용하도록 기능을 보강 • 편리한 프로그래밍 • 지금까지 사용한 도구상장의 모든 컨트롤과 앞으로 사용할 추가적 컨트롤들
[실습하기] 도구 상자에 컨트롤 추가하기 컨트롤 탭 선택 추가할 컨트롤 탭 선택 폼에 추가된 컨트롤 [프로젝트]->[구성 요소] 메뉴 선택 OK 버튼 클릭 도구상자에 추가된 컨트롤
01. 도구 상자에 컨트롤 추가하기 02. MicroSoft Common Dialog Control 6.0 03. MicroSoft FlexGrid Control 6.0 04. MicroSoft Hierachical FlexGrid Control 6.0
MicroSoft Common Dialog Control 6.0 • Microsoft Common Dialog 6.0 컨트롤 • 특징 • 프로그램을 제작하는 과정에서 필수적으로 포함하는 대화상자를 제공하는 컨트롤 • 파일 열기, 저장하기, 색 선택, 글꼴 선택, 인쇄 설정 등의 표준 대화상자 집합을 제공 • 대화상자를 화면에 표시하기 • 1. 메소드를 사용하여 대화상자 표시하기 • 2. Action 속성 사용
1. 메소드를 사용하여 대화상자 표시하기 • 사용 예 Private Sub Command1_Click( ) CommonDialog1.ShowOpen ‘열기 대화상자 표시 End Sub 사용 가능한 메소드
2. Action 속성 사용 • 사용 예 Action 속성 Private Sub Command1_Click( ) CommonDialog1.Action = 1 ‘열기 대화상자 표시 End Sub
열기 대화상자 • 파일을 여는 대화상자를 사용하기 위해서는 ShowOpen 메소드를 사용하거나 Action 속성을 1로 설정 • 구문 형식 개체명.ShowOpen 또는 개체명.Action = 1
Filter 속성 • 대화상자의 파일 목록상자에 표시할 파일의 확장자를 지정하기 위해 사용 • 하나의 필터에 두 개 이상의 확장자를 나열하는 경우세미콜론(;)을 사용 • 구문 형식 • 필터명 : 화면에 나타낼 문자열 • 필터 : 불러올 파일의 종류 • 사용 예 개체명.Filter = " 필터명-1| 필터-1 [ | 필터명-2| 필터-2| ...] CommonDialog1.Filter=" 비트맵(*.bmp)|*.BMP" CommonDialog1.Filter=" 그림 파일(BMP,GIF,JPG)|*.BMP; *.GIF; *.JPG | 비트맵(*.bmp)|*.BMP"
[실습하기] 열기 대화상자 보이기 폼에 공용 대화상자 컨트롤과 커맨드 버튼 컨트롤 추가 각 컨트롤의 속성 설정
cmdShowOpen 버튼의 Click 이벤트 핸들러 작성 Private Sub cmdShowOpen_Click() CommonDialog1.Filter = "그림파일|*.BMP;*.GIF;*.JPG|" & _ ‘필터 설정 "GIF 파일|*.GIF|" & _ "JPG 파일|*.JPG|" CommonDialog1.FilterIndex = 1 ‘기본 필터 지정 CommonDialog1.DialogTitle = "파일 열기 대화상자" ‘대화상자 제목 설정 CommonDialog1.FileName = "그림1" ‘기본 파일이름 설정 CommonDialog1.InitDir = "C:\WINNT\" ‘초기 디렉토리 설정 CommonDialog1.ShowOpen ‘ 열기 대화상자 표시 End Sub
다른 이름으로 저장하기 대화상자 • 특징 • 다른 이름으로 저장하기 대화상자 표시 • 대화상자를 화면에 표시하려면 Action 속성 값을 2로 설정하거나 ShowSave 메소드를 사용 • ‘열기’ 대화상자와 동일한 속성 및 메소드 사용 • 색 설정 대화상자 • 특징 • 글꼴의 색이나 배경색 등을 설정할 수 있도록 색 설정 대화상자 표시 • 대화상자를 화면에 나타나게 하려면 Action 속성을 3으로 설정하거나 ShowColor 메소드 사용 • Color 속성을 사용하여 색 설정 대화상자에서 사용자가 선택한 색으로 설정
Color 속성 • 색 대화상자에서 선택한 색을 반환하거나 설정 • Color 속성이 색 설정 대화상자에서 색을 반환하려면 cdlCCRGBInit 플래그를 설정해야 함. • 구문 형식 • number : 색을 지정하는 수식으로 RGB 함수나 QBColor 함수를 사용하여 설정한 색 혹은 시스템 색 상수 개체명.Color [= number] 색 설정 대화상자의 Flag 상수 cdlCCFullOpen
[실습하기] 색 대화상자 보이기 폼에 컨트롤 추가하기 각 컨트롤의 속성 설정
텍스트 박스의 글자 색과 배경 색을 변경하는 Click 이벤트 핸들러 작성 Private Sub cmdBackColor_Click() CommonDialog1.ShowColor txtTest.BackColor = CommonDialog1.Color End Sub Private Sub cmdFontColor_Click() CommonDialog1.Flags = cdlCCRGBInit CommonDialog1.Color = vbBlue CommonDialog1.ShowColor txtTest.ForeColor = CommonDialog1.Color End Sub CommonDialog1.Flags = cdlCCRGBInit + cdlCCFullOpen + cdlCCHelpButton
글꼴 대화상자 • 특징 • CommonDialog 컨트롤의 ShowFont 메소드를 사용하거나 Action 속성의 값을 4로 설정 • 글꼴, 크기, 색, 유형을 지정하여 글꼴 모양 변경 가능 • 글꼴 대화상자를 표시하기 위해서는 윈도우에서 제공하는 글꼴을 먼저 읽어와야 함. • 글꼴을 설정하기 위해서는 cdlCFBoth, cdlCFPrinterFonts, cdlCFScreenFonts 세 가지 중 반드시 지정 글꼴을 읽어오지 않았을 경우 표시되는 메시지 상자
[실습] 글꼴 대화상자 표시하기 11
[실습하기] 글꼴 대화상자 표시하기 Private Sub cmdFontDialog_Click() CommonDialog1.Flags = cdlCFBoth + cdlCFEffects ‘글꼴 읽어오기 CommonDialog1.ShowFont lblFontDisp.Caption = CommonDialog1.FontName lblFontSizeDisp.Caption = CommonDialog1.FontSize lblFontColorDisp.BackColor = CommonDialog1.Color txtPreview.SelStart = 0 ‘블럭의 시작 위치 txtPreview.SelLength = 8 ‘블럭을 설정할 글자 수 txtPreview.Font.Name = CommonDialog1.FontName ‘설정한 글꼴 종류 반환 txtPreview.Font.Size = CommonDialog1.FontSize ‘설정한 글꼴 크기 반환 txtPreview.Font.Bold = CommonDialog1.FontBold ‘설정한 글꼴 유형 반환 txtPreview.Font.Italic = CommonDialog1.FontItalic txtPreview.Font.Strikethrough = CommonDialog1.FontStrikethru txtPreview.Font.Underline = CommonDialog1.FontUnderline txtPreview.ForeColor = CommonDialog1.Color ‘설정한 글꼴 색 반환 End Sub
인쇄 대화상자 • 특징 • ShowPrinter 메소드를 사용하거나 Action 속성을 5로 설정 • 인쇄되는 방법을 지정하거나 인쇄 범위, 인쇄 품질, 인쇄 매수 등 지정 • 새 기본 프린터를 설정하거나 재설치 가능 인쇄 대화상자에서 사용하는 속성
[실습하기] 인쇄 대화상자 표시하기
[실습하기] 인쇄 대화상자 표시하기 Private Sub cmdPrintDialog_Click() CommonDialog1.Flags = cdlPDPageNums ‘인쇄할 페이지 항목 설정 CommonDialog1.Min = 1 ‘인쇄할 페이지 최소 값 설정 CommonDialog1.Max = 10 ‘인쇄할 페이지 최대 값 설정 CommonDialog1.FromPage = 1 ‘시작 페이지 설정 CommonDialog1.ToPage = 8 ‘끝 페이지 설정 CommonDialog1.Copies = 2 ‘인쇄 매수 설정 CommonDialog1.ShowPrinter End Sub Private Sub cmdPrintSetupDialog_Click() CommonDialog1.Flags = cdlPDPrinterSetup ‘프린터 설정 대화상자 CommonDialog1.ShowPrinter End Sub
도움말 대화상자 • 특징 • ShowHelp 메소드나 Action 속성을 6으로 설정하면 Windows 도움말 엔진(WINHLP32.EXE)을 실행하여 HelpFile 속성에 설정된 도움말 파일 표시 • HelpCommand 속성 • 특정 키워드에 대한 도움말이나 상황에 따른 도움말과 같이 원하는 온라인 도움말 형식을 사용자의 취향에 맞게 변경 가능 도움말 대화상자에서 사용하는 속성
[실습하기] 도움말 대화상자 표시하기
[실습하기] 도움말 대화상자 표시하기 Private Sub cmdShowHelp_Click() CommonDialog1.HelpFile = "c:\hprSnap.hlp" CommonDialog1.HelpCommand = cdlHelpContext CommonDialog1.ShowHelp End Sub
01. 도구 상자에 컨트롤 추가하기 02. MicroSoft Common Dialog Control 6.0 03. MicroSoft FlexGrid Control 6.0 04. MicroSoft Hierachical FlexGrid Control 6.0
MicroSoft FlexGrid Control 6.0 • MicroSoft FlexGrid Control 6.0 • 특징 • 많은 양의 데이터를 표 형식으로 표시하고 정리 가능 • 문자열과 그림이 수록된 표의 정렬, 병합 및 포맷 가능 • 데이터를 입력받아 출력만 가능 • FlexGrid 컨트롤을 사용하기 위해서는 컨트롤을 도구상자에 추가해야 함. 도구 상자에 추가된 Flex Grid 컨트롤
[실습하기] 학점 계산하기 셀 클릭
[실습하기] 학점 계산하기 Dim i, j, Total, cellValue As Integer Dim Average As Double Private Sub Form_Load() MSFlexGrid1.Row = 0 MSFlexGrid1.Col = 1: MSFlexGrid1.Text = "국어" MSFlexGrid1.Col = 2: MSFlexGrid1.Text = "영어" MSFlexGrid1.Col = 3: MSFlexGrid1.Text = "수학" MSFlexGrid1.Col = 4: MSFlexGrid1.Text = "총점" MSFlexGrid1.Col = 5: MSFlexGrid1.Text = "평균" MSFlexGrid1.Col = 0 MSFlexGrid1.Row = 1: MSFlexGrid1.Text = "홍길동" MSFlexGrid1.Row = 2: MSFlexGrid1.Text = "홍길순" MSFlexGrid1.Row = 3: MSFlexGrid1.Text = "이몽룡" End Sub Private Sub MSFlexGrid1_Click() MSFlexGrid1.Text = InputBox("점수를 입력하세요") End Sub
Private Sub cmdTotal_Click() For i = 1 To 3 MSFlexGrid1.Row = i Total = 0 For j = 1 To 3 MSFlexGrid1.Col = j cellValue = Val(MSFlexGrid1.Text) Total = Total + cellValue Next j MSFlexGrid1.Col = 4: MSFlexGrid1.Text = Total Next i End Sub Private Sub cmdAverage_Click() For i = 1 To 3 MSFlexGrid1.Row = i MSFlexGrid1.Col = 5 Average = Val(MSFlexGrid1.TextMatrix(i, 4)) / 3 MSFlexGrid1.Text = Average Next i End Sub • TextMatrix 속성 개체이름.TextMatrix(행, 렬) • Ex) MSFlexGrid1.Row =2: • MSFlexGrid1.Col =3: • MSFlexGrid1.Text = “3행4열” • MSFlexGrid1.TextMatrix(2,3)=“3행 4열”
[실습하기] 학점 계산하기 프로그램 실행 셀 클릭
01. 도구 상자에 컨트롤 추가하기 02. MicroSoft Common Dialog Control 6.0 03. MicroSoft FlexGrid Control 6.0 04. MicroSoft Hierachical FlexGrid Control 6.0
MicroSoft Hierachical FlexGrid Control 6.0 • MicroSoft Hierachical FlexGrid Control 6.0 • 특징 • MSFlexGrid 컨트롤처럼 테이블 형식의 데이터를 표시/조작 • 문자열과 그림을 포함한 테이블을 유연하게 정렬/병합 • 형식을 정의할 수 있는 읽기 전용 그리드 컨트롤 • MSHFlexGrid 셀에는 텍스트, 그림 또는 두 가지를 모두 넣을 수 있다. • MSHFlexGrid 컨트롤을 사용하기 위해서는 구성 요소 대화상자에 있는 ‘MS Hierarchical FlexGrid 컨트롤 6.0-OLEDB’를 도구상자 안에 등록해야 한다. • ‘MSHFlexGrid 컨트롤의 특징 • 열과 행을 동적으로 재배열함 • 똑같은 데이터를 자동으로 통합 • 각 셀에 텍스트나 그림, 또는 둘 다 삽입 가능 추가된 MSHFlexGrid 컨트롤
row MSHFlexGrid 컨트롤의 속성
Sort 속성 • 특징 • 전체 행 정렬 • Row와 RowSel 속성으로 정렬할 범위 지정 • Row와 RowSel 속성이 같으면 고정되어 있지 않은 모든 행 정렬 • 정렬에 사용되는 키는 Col과 ColSel 속성에 의해 결정 • 정렬은 항상 왼쪽에서 오른쪽 방향으로 수행 Sort 속성 flexSortStringNoCaseDescending
셀 병합하기 • 특징 • MergeCells 속성의 값을 0 이외의 값으로 설정하고, MergeRow와 MergeCol 배열 속성을 True로 설정 • 동일한 내용을 가진 셀을 병합하고, 셀의 내용이 변경될 때마다 병합은 자동으로 갱신. 셀을 병합하기 위해 사용하는 속성
Private Sub Form_Load() MSHFlexGrid1.Rows = 5 MSHFlexGrid1.Cols = 3 MSHFlexGrid1.TextMatrix(0, 0) = "지역" MSHFlexGrid1.TextMatrix(1, 0) = "경기도" MSHFlexGrid1.TextMatrix(2, 0) = "경기도" MSHFlexGrid1.TextMatrix(3, 0) = "충청도" MSHFlexGrid1.TextMatrix(4, 0) = "충청도" MSHFlexGrid1.TextMatrix(0, 1) = "회사이름" MSHFlexGrid1.TextMatrix(1, 1) = "A사" MSHFlexGrid1.TextMatrix(2, 1) = "B사" MSHFlexGrid1.TextMatrix(3, 1) = "C사" MSHFlexGrid1.TextMatrix(4, 1) = "D사" MSHFlexGrid1.TextMatrix(0, 2) = "사원이름" MSHFlexGrid1.TextMatrix(1, 2) = "홍길동" MSHFlexGrid1.TextMatrix(2, 2) = "홍길순" MSHFlexGrid1.TextMatrix(3, 2) = "이몽룡" MSHFlexGrid1.TextMatrix(4, 2) = "성춘향" End Sub
Form_Load 이벤트 핸들러에 셀 병합하는 코드 추가 MSHFlexGrid1.MergeCells = 3 MSHFlexGrid1.MergeCol(0) = True MSHFlexGrid1.MergeCol(1) = True 프로그램 실행 후
셀의 행 높이와 열 너비 설정하기 • RowHeight 속성과 ColWidth 속성 이용 • 구문 형식 • number : 행 번호 또는 열 번호, number=-1이면 행/열 전체 의미 • 셀에 그림 넣기 • 특징 • 셀에 그림을 넣으려면 속성 창을 사용하여 파일로 된 그림을 직접 넣을 수는 없고, CellPicture 속성을 사용하여 이미지 컨트롤이나 픽처박스 컨트롤의 그림을 Set 함수를 사용하여 읽어와야 함 개체명.RowHeight(number) = [value] 개체명.ColWidth(number) = [value]