예제로 익히는 ActiveX컨트롤(1)-파일시스템
ActiveX가 뭔가? 어디선가 많이 들어본 것 같은데....
너무 거창하게 생각할 필요 없습니다. 지금까지 우리가 사용했던 각종 컨트롤이 모두 ActiveX 컨트롤입니다. 레이블, 텍스트박스, 콤보박스, 리스트박스, 타이머, 이미지 등 이미 많은 컨트롤을 사용했는데 그것들을 ActiveX 컨트롤이라고 부릅니다.
그러니까 이번 강좌부터 다룰 주제인 '예제로 익히는 ActiveX 컨트롤'도 사실 지금까지의 강좌와 별반 다를 게 없습니다. 다만 이번 시간부터는 지금까지 사용해왔던 또는 사용하지 않았던 컨트롤들의 사용법 위주로 설명을 하겠다는 것입니다. 그렇게 컨트롤에 대해 어느 정도 실습을 하고 난 다음 나중에 기회가 되면 종합 실습 프로그램을 하나 만들어보도록 하죠.
ActiveX 컨트롤에 대한 사전적인 뜻을 알기 위해서는 먼저 컴포넌트, 컨테이너 등의 개념을 알아야 합니다. 컴포넌트든 컨테이너든 하나의 작은 프로그램이라고 생각하시면 되고요...더 궁금하시면 사전을 찾아보시고요.... 그렇게까지 몰라도 비베 입문하는 데 지장이 없으니 그냥 넘어가도록 하죠.
혹시 예전 6강과 7강에서 실습했던 그래픽뷰어 프로그램이 기억나시나요?
오늘은 업그레이드! 그래픽뷰어를 만들어보겠습니다.
예전에 만든 그래픽뷰어를 실행하면 아래와 같이 실행됩니다.

이 프로그램을 왜 만들었죠? 바로 콤보 박스와 리스트 박스의 사용법을 알아보기 위해 만들었었죠.
그런데 이 프로그램의 최대의 단점은...바로 실제로 자기가 원하는 파일을 선택할 수 없다는 데 있습니다.
오늘 만들 프로그램은 바로 원하는 드라이브의 원하는 폴더에서 원하는 그림 파일을 찾아 보여주는, 아래 그림과 같은 업그레이드된 그래픽 뷰어를 만들어 보겠습니다.

먼저 지난 6강과 7강에서 배웠던 리스트 박스와 콤보 박스에 대해 알고 있어야 합니다. 그런 의미에서 다시 6강과 7강을 한번 미리 훑어보고 실습에 임하는 것이 나을 것 같네요.
소스 받아가세요...

이상 동주 아빠 손병목이었습니다.

너무 거창하게 생각할 필요 없습니다. 지금까지 우리가 사용했던 각종 컨트롤이 모두 ActiveX 컨트롤입니다. 레이블, 텍스트박스, 콤보박스, 리스트박스, 타이머, 이미지 등 이미 많은 컨트롤을 사용했는데 그것들을 ActiveX 컨트롤이라고 부릅니다.
그러니까 이번 강좌부터 다룰 주제인 '예제로 익히는 ActiveX 컨트롤'도 사실 지금까지의 강좌와 별반 다를 게 없습니다. 다만 이번 시간부터는 지금까지 사용해왔던 또는 사용하지 않았던 컨트롤들의 사용법 위주로 설명을 하겠다는 것입니다. 그렇게 컨트롤에 대해 어느 정도 실습을 하고 난 다음 나중에 기회가 되면 종합 실습 프로그램을 하나 만들어보도록 하죠.
ActiveX 컨트롤에 대한 사전적인 뜻을 알기 위해서는 먼저 컴포넌트, 컨테이너 등의 개념을 알아야 합니다. 컴포넌트든 컨테이너든 하나의 작은 프로그램이라고 생각하시면 되고요...더 궁금하시면 사전을 찾아보시고요.... 그렇게까지 몰라도 비베 입문하는 데 지장이 없으니 그냥 넘어가도록 하죠.
혹시 예전 6강과 7강에서 실습했던 그래픽뷰어 프로그램이 기억나시나요?
오늘은 업그레이드! 그래픽뷰어를 만들어보겠습니다.
예전에 만든 그래픽뷰어를 실행하면 아래와 같이 실행됩니다.

이 프로그램을 왜 만들었죠? 바로 콤보 박스와 리스트 박스의 사용법을 알아보기 위해 만들었었죠.
그런데 이 프로그램의 최대의 단점은...바로 실제로 자기가 원하는 파일을 선택할 수 없다는 데 있습니다.
오늘 만들 프로그램은 바로 원하는 드라이브의 원하는 폴더에서 원하는 그림 파일을 찾아 보여주는, 아래 그림과 같은 업그레이드된 그래픽 뷰어를 만들어 보겠습니다.

먼저 지난 6강과 7강에서 배웠던 리스트 박스와 콤보 박스에 대해 알고 있어야 합니다. 그런 의미에서 다시 6강과 7강을 한번 미리 훑어보고 실습에 임하는 것이 나을 것 같네요.
- 실습에 앞서 아래 그림 파일을 다운로드하여 압축을 해제하여 c:\vb실습 폴더에 복사해 둡니다.
실습 그림 파일 다운로드
- 지금까지 실습했던 "메뉴.vbp" 프로젝트를 실행합니다.
- 빈 폼을 하나 추가하고 DriveListBox, DirListBox, ComboBox, FileListBox, Image, Label 등을 이용해 아래와 같이 디자인합니다.

- 오늘 새롭게 선보이는 DriveListBox 컨트롤과 DirListBox, FileListBox 컨트롤은 아래 그림을 찹고하여 사용하시기 바랍니다.

- 각각의 컨트롤의 속성을 아래와 같이 바꿔줍니다.

- 오늘 새롭게 선보이는 DriveListBox 컨트롤과 DirListBox, FileListBox 컨트롤은 아래 그림을 찹고하여 사용하시기 바랍니다.
- [보기]-[코드]를 실행해 다음과 같이 코드를 입력한다.
- 컨트롤 이름과 이벤트 이름이 뭔지는 아시죠? 혹시나 모르시는 분 아래 그림을 참조하세요.

먼저 (일반)의 (선언)을 선택해서 다음과 같이 입력하세요.

Option Explicit는 안써도 되지만, 앞으로 모든 변수를 선언해서 사용하겠다는 뜻입니다. 예전에 설명을 드렸을 겁니다. 실제 프로그래밍을 할 때는 써 주는 것이 좋다구요.
두번째 줄은
'디렉토리'라는 정수형 변수를 선언했습니다. 변수 이름을 한글로 쓰는 것은 실제 프로그래밍에서는 거의 없는 일입니다만, 우리는 지금 비베에 입문하고 있는 과정이므로 변수 이름도 이해하기 쉽도록 한글로 써봤습니다. 실행하는 데 오류는 전혀 없습니다.
- Form 컨트로의 Load 이벤트를 선택해 다음과 같이 입력합니다.
녹색 주석은 입력 안해도 됩니다.

이것이 무슨 뜻인지 모르시겠다구요? 그럼 저~어~기 6강과 7강을 다시 한번 보고 오세요.
- Dirve1 컨트롤의 Change 이벤트를 선택해 다음과 같이 입력합니다.

드라이브를 변경할 경우 경로에 반영한다는 뜻입니다. 아래의 디렉토리, 파일 컨트롤과 함께 사용해야 하므로 이 세 가지 컨트롤에 대한 코드를 주의깊게 보시기 바랍니다.
- Dir1 컨트롤의 Change 이벤트를 선택해 다음과 같이 입력합니다.

디렉토리를 바꿀 경우 파일 경로에 반영한다는 뜻입니다.
- File1 컨트롤의 Click 이벤트를 선택해 다음과 같이 입력합니다.

위에서 최종 선택된 파일 경로를 '디렉토리'라는 변수에 저장합니다.
만약 디렉토리의 끝자리가 '\'로 끝나는 경우, 즉 C:\ 또는 D:\와 같을 경우 왼쪽에서 두번째까지만 읽으라는 코드도 포함되어 있습니다.
그래서 완성된 최종 경로의 그림 파일 이미지를 출력하고 디렉토리를 출력하라는 코드입니다.
- 마지막으로 Combo1 컨트롤의 Click 이벤트를 선택하여 다음 코드를 입력합니다.

코드 입력이 거의 다 끝났습니다.
전혀 모르겠다구요? 그래도 일단 그냥 따라하세요. 한꺼번에 이해하지 못해도 다 완성해 놓은 다음, 차근차근 그 뜻을 살펴봐야 합니다. 그래야 늡니다.
- 컨트롤 이름과 이벤트 이름이 뭔지는 아시죠? 혹시나 모르시는 분 아래 그림을 참조하세요.
- 이제 실습 메뉴에 포함을 시켜야죠. frmMenu 폼을 더블클릭하여 연 다음, [도구]-[메뉴 편집기]를 실행해 아래와 같이 '그래픽뷰어2' 메뉴를 가운데 추가합니다.

- frmMenu 폼의 [비베입문]-[그래픽뷰어2]를 클릭하여 다음과 같이 입력합니다.

- 정말 다 끝났습니다. 이제 실행해 보세요. 아래와 같이 정상적으로 작동되나요?

소스 받아가세요...

이상 동주 아빠 손병목이었습니다.
