C Visual Basic Programming - 메시지와 그림이 있는 폼

Cugain 2007.02.21 11:30 조회 수 : 286 추천:67

sitelink1 http://myhome.hanafos.com/~log0/visual_basic.htm 
sitelink2  
extra_vars5  
extra_vars6  

 

비베강좌(2)<--메시지와그림이 있는 폼

 

 


 

 


비베 한달이면 한국불패 만큼 한다. -2. 메시지와 그림이 있는 폼-

비베 한달이면 한국불패 만큼 한다 세번째 강좌가 시작 되었습니다.

어제 HELLO WORLD 예제를 변형해보고 팁과 소스를 저장해 두신다음 기쁜 마음으로 주무시고 일어나 아침에 해야 할 일을

가르쳐 드리려 합니다.

하하# 정말 한달이면 저만큼 할 수 있습니다.

HELLO WORLD 예제를 해보았는데 이거 글자만 나오고 그림이 없으니까 너무 폼이 삭막합니다.

그래서 그림을 넣어보고 싶은데 어떻게 해야할지.... 음...

생각을 하고 있는데 컨트롤 모음에서 그림처럼 생긴게 두개나 있는것이 눈에 뛰는 군요.

'아이구 이놈을 이용하면 폼에 그림을 그려 넣을 수 있겠구나. 그런데 왜 그림이 두개나 될까?'

두개가 있는데요. 하나는 픽처박스(PICTURE BOX)이고 또하나는 이미지(IMAGE) 인데 이둘은 차이가 있습니다.

픽처 박스는 그래픽 메소드를 사용할 수 있는데 비해 이미지는 사용할 수 없습니다.

'어! 그럼 픽처박스가 더 좋은거 아냐'

'그럼 난 픽처 박스만 쓰야지 그런데 메소드가 뭐야?"

이렇게 생각하시는 분들이 계실텐데요.

물론 픽처박스가 이미지보다 더욱 많은 기능을 가지고 있지만 그만큼 메모리를 많이 소모한다는 단점이 있습니다.

단지 비트맵 이미지를 표시할 목적이라면 이미지를 사용하는게 더욱 현명한 방법이겠죠.

아마도 상당한 양의 메모리 차이가 있기때문에 두개로 만들어서 용도에 따라 사용하게 했을테니까요.

그리고 메서드라는 것은 영어로는 METHOD [메서드] 방법, 절차란 뜻을가진 것을 말하는데요.

뭐 자질구레한 정의를 내리는 것보다 이렇게 설명을 드리죠.

PICTURE1.PRINT"나 이쁘?"

라고 했다면 픽처박스에 '나 이쁘?'가 표시됩니다.

하지만 IMAGE1.PRINT"나밉니?"라고 했다면 이것은 에러를 일어키는 것이죠.

왜냐하면 IMAGE는 메서드를 사용할 수 없는데도 PRINT라는 메서드를 사용 했기 때문에요.

여기서 PRINT같은 것을 메서드라고 하는 거구요. 쉽게 말해 명령문 정도의 개념이라고 일단은 이해해 두시고요.

그럼 우선은 단지 그림을 폼에 나타내는 것을 하고 싶어니까 메모리가 들든다는 이미지 컨트롤루다 화면에 하나 장만을 합니다.

그리고는 이미지 컨트롤의 속성창을 보는 거죠. 음.. 거기보면 NAME속성이 IMAGE1이라고 되어 있을 겁니다.

이중에서 다른 속성은 전혀 신경 쓰실 필요가 없습니다.

단하나 PICTURE속성은 신경을 써야 하지만요.

아마 PICTURE속성이 (없음)이라고 되어 있을 겁니다. 그리고 그옆에 누를 수 있는 버튼 같은게 있을 거구요.

그놈을 한번 눌러보세요. 그럼 열기대화상자가 나올겁니다.

원하는 그림파일을 선택해서는 열어보세요. 하하# 폼에 그림이 나타나죠.

카~~~ 정말 경이로운 순간입니다. 저는 이때 또한번 쇼크를 먹었습니다.

압축도 않되있는 비트맵을 화면에 그려주기 위해서 비트맵의 구조를 알아야 했었고.

이진화일 입출력을 알아야 했었던 과거가 눈앞을 지나 갔기 때문이죠.

정말 좋은세상이 왔다는 생각입니다. 지금 제가 잠깐 만들어본 폼에는 이쁜여학생이 웃고 있고요.

그위에는 "나 이쁘?" 라는 글자가 나와 있는데요.

여러분도 한번 만들어 보세요. 이미지 박스로다 원하는 그림을 불러들이고 텍스트 박스를 하나 만들어서는 텍스트 박스의

TEXT속성을 "나 이쁘?" 로 바꿔 보시면 되겠죠.

그리고 여기다 커맨드버튼(COMMAND BUTTON)을 하나 만들어서는 그놈을 눌렀을때 "나 이쁘?" 가 "나 밉니?" 로 바뀌게
해서는

실행시켜 보는 거예요. 이정도 까지 하는데 십분이 걸리 셨을 줄 압니다. 정말 쉽죠..

이제 약간 어려운 기술을 하나 가르쳐 드릴께요..

역시 이정도하고 컴퓨터를 끄신다면 프로그래머가 된다는것은 꿈에 불과 하겠죠..

역시 똑같이 여성이 웃고 있는 그림이 있고요. 그 옆에는 텍스트 박스가 있습니다.

텍스트 박스에는 '나 이쁘?' 라는 글자가 나와 있구요.

그리고 그 밑으로 커멘드 버튼이 세개 있는데 각자의 CAPTION 속성을 '아니 미워', '그래 이쁘', '끝내기' 로 바꿔 보세요.

그다음 '아니 미워'를 클릭해 보세요. 그다음.


PRIVATE SUB COMMAND1_CLICK()
TEXT1.TEXT="너도 미워!!"
SUB END


이런 방식으로.. 둘을


PRIVATE SUB COMMAND2_CLICK()
TEXT1.TEXT="너도 이쁘.^^"
SUB END

PRIVATE SUB COMMAND3_CLICK()
END
SUB END


로 해보세요. 그리고 실행을 해보세요. 제대로 되지요.

그런데 일부 모험심이 있는 분들은 아마도 텍스트 박스대신 픽처 박스로다 문자표시를 해보려고 하셨을 겁니다.

음..그랬다면 대단히 장내가 밝은 분들이고요..

그런데 어쩐일인지 이거 글자가 않나타 났을 겁니다.

'분명히 픽처 박스를 클릭한다음 생기는 편집창에다가 PICTURE1.PRINT"나 이쁘?"라고 했는데 왜 않되지???'

그기에는 두가지 이유가 있습니다. 첫째 이유는 픽처 박스를 클릭했을때 생기는 편집창은


PRIVATE SUB PICTURE1_CLICK()
|
SUB END


로써 픽처 박스가 클릭될때 실행이 될 코드를 적는 창이기 때문에 그렇구요.

또다른이유는 픽처박스의 AutoReDraw 속성이 FALSE로 되어 있기 때문입니다.

폼을 클릭하면 생기는 편집창인 FORM_LOAD()서브에다가 코딩을 하셔야 하구요.

픽처 박스의 AUTOREDRAW속성도 TRUE로 맞추셔야 합니다.


PRIVATE SUB FORM_LOAD()
PICTURE1.PRINT"나 이쁘?"
SUB END


이러면 픽처박스에 '나 이쁘?' 라는 말이 표시될거구요.

그런데 이거 커맨드 버튼을 클릭했는데 '나 이쁘?' 밑에 '너두 미워!!' 등이 찍혀 몇번 해버리니까

글자가 않보이는 사태(?)가 발생하죠.

이럴때는 CLS메서드를 사용해서 픽처 박스를 지워주고(예: PICTURE1.CLS) 글자를 찍어 주면 됩니다.

여러가지로 해보세요. 예를 들면 목성그림을 그려놓고 텍스트 박스를 두개만들어서는 하나에는 문제를 적고요.(여러 줄의
텍스트)

하나는 정답을 누를때마다 틀렸는지 맞는지 재밌게 알려주는 메세지가 낳오게 만들어 보세요.

그리고 소스등은 저장해 두시고요..

오늘 강좌는 여기까지 하죠.^^ 히히.  

--------------------------------------------------------------------------------