Chap 7 activex
Download
1 / 57

Chap 7. ActiveX 컨트롤 배우기 - PowerPoint PPT Presentation


  • 184 Views
  • Uploaded on

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 비트 컨트롤

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Chap 7. ActiveX 컨트롤 배우기' - baruch


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Chap 7 activex

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
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 Control 6.0

  • Microsoft Common Dialog 6.0 컨트롤

    • 특징

      • 프로그램을 제작하는 과정에서 필수적으로 포함하는 대화상자를 제공하는 컨트롤

      • 파일 열기, 저장하기, 색 선택, 글꼴 선택, 인쇄 설정 등의 표준 대화상자 집합을 제공

    • 대화상자를 화면에 표시하기

      • 1. 메소드를 사용하여 대화상자 표시하기

      • 2. Action 속성 사용


  • 1. 메소드를 사용하여 대화상자 표시하기

    • 사용 예

      Private  Sub  Command1_Click( )

      CommonDialog1.ShowOpen ‘열기 대화상자 표시

      End Sub

사용 가능한 메소드


Action 속성

Private  Sub  Command1_Click( )

        CommonDialog1.Action = 1 ‘열기 대화상자 표시

End Sub


  • 열기 대화상자

    • 파일을 여는 대화상자를 사용하기 위해서는 ShowOpen 메소드를 사용하거나 Action 속성을 1로 설정

  • 구문 형식

개체명.ShowOpen 

또는

개체명.Action = 1



    CommonDialog1.Flags = 속성1 + 속성2 + ….

Flag 상수


  • 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로 설정

      • 인쇄되는 방법을 지정하거나 인쇄 범위, 인쇄 품질, 인쇄 매수 등 지정

      • 새 기본 프린터를 설정하거나 재설치 가능

인쇄 대화상자에서 사용하는 속성


Flags 속성의 값


[실습하기] 인쇄 대화상자 표시하기


[실습하기] 인쇄 대화상자 표시하기

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

  • MicroSoft FlexGrid Control 6.0

    • 특징

      • 많은 양의 데이터를 표 형식으로 표시하고 정리 가능

      • 문자열과 그림이 수록된 표의 정렬, 병합 및 포맷 가능

      • 데이터를 입력받아 출력만 가능

      • FlexGrid 컨트롤을 사용하기 위해서는 컨트롤을 도구상자에 추가해야 함.

도구 상자에 추가된 Flex Grid 컨트롤


MSFlexGrid 컨트롤의 속성

row


[실습하기] 학점 계산하기

셀 클릭


[실습하기] 학점 계산하기

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

  • 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]


[실습하기] 셀에 그림넣기


Private Sub cmdPicture_Click()

    MSHFlexGrid1.Row = 1

    MSHFlexGrid1.Col = 1

    Set MSHFlexGrid1.CellPicture = Image1.Picture

End Sub

Private Sub cmdPicture_Click()

    MSHFlexGrid1.Row = 1

    MSHFlexGrid1.Col = 1

MSHFlexGrid1.RowHeight(1) = Image1.Height

    MSHFlexGrid1.ColWidth(1) = Image1.Width

    Set MSHFlexGrid1.CellPicture = Image1.Picture

End Sub


[실습하기] 셀 편집하기

  • 셀 편집하기

    • 특징

      • MSH FlexGrid 컨트롤은 셀에 문자열이나 그림을 출력할 수는 있지만 셀에서 직접 편집할 수는 없다.

      • MSH FlexGrid 컨트롤에서 문자열까지 편집하려면 텍스트 박스 컨트롤을 사용해서 셀 편집바로 사용해야 한다.


[실습하기] 셀 편집하기

 Form_Load 이벤트 핸들러 작성

Private Sub Form_Load()

    MSHFlexGrid1.Rows = 5

    MSHFlexGrid1.Cols = 5

    MSHFlexGrid1.TextMatrix(0, 1) = "국어"

    MSHFlexGrid1.TextMatrix(0, 2) = "영어"

    MSHFlexGrid1.TextMatrix(0, 3) = "수학"

    MSHFlexGrid1.TextMatrix(0, 4) = "평균"

    MSHFlexGrid1.TextMatrix(1, 0) = "홍길동"

    MSHFlexGrid1.TextMatrix(2, 0) = "홍길순"

    MSHFlexGrid1.TextMatrix(3, 0) = "이몽룡"

    MSHFlexGrid1.TextMatrix(4, 0) = "성춘향"

    txtInput.Visible = False

End Sub


[실습하기] 셀 편집하기

셀을 클릭하면 텍스트 박스 컨트롤이 표시되도록 코드 작성

Private Sub MSHFlexGrid1_Click()

    txtInput.Visible = True

    Call Cell_Edit(MSHFlexGrid1, txtInput)

End Sub

Private Sub Cell_Edit(grid As Control, Txt As Control)

'그리드의 글꼴 크기와 텍스트컨트롤의 글꼴 크기를 같게 해준다.

Set Txt.Font = grid.Font

'현재셀 위치에 텍스트 컨트롤을 셀크기와 동일하게 만들어 준다.

Txt.Move grid.Left + grid.CellLeft - 10, _

          grid.Top + grid.CellTop - 10, _

          grid.CellWidth - 10, grid.CellHeight - 10

txtInput.Visible = True     ‘텍스트 박스가 보이게 설정

Txt.Text = MSHFlexGrid1.TextMatrix(grid.Row, grid.Col)

Txt.SetFocus

End Sub


[실습하기] 셀 편집하기

입력완료 후 데이터를 셀에 표시하는 이벤트 핸들러 작성

Private Sub txtInput_KeyDown(KeyCode As Integer, Shift As Integer)

If KeyCode = vbKeyReturn Then

    If txtInput.Visible Then

        txtInput.Visible = False

        MSHFlexGrid1.SetFocus

    Else

        txtInput.Visible = True

        Call Cell_Edit(MSHFlexGrid1, txtInput)

    End If

  End If

End Sub


[실습하기] 셀 편집하기

프로그램 실행 후

Dim My_Col, My_Row As Integer

Private Sub txtInput_GotFocus()

My_Col = MSHFlexGrid1.Col

My_Row = MSHFlexGrid1.Row

End Sub

Private Sub txtInput_LostFocus()

MSHFlexGrid1.TextMatrix(My_Row, My_Col) = txtInput.Text

End Sub


ad