'visual studio 2005 sp1'에 해당되는 글 3건

  1. 2007.12.26 [MFC] Spin 컨트롤 예제 2
  2. 2007.12.26 [MFC] ScrollBar 컨트롤 예제 3
  3. 2007.11.18 [MFC] 컨트롤 변수, 이벤트
2007. 12. 26. 19:54
첨부된 소스파일은 Visual Studio 2005 (Service Pack 1) 에서 작성되었습니다.


실행화면...
사용자 삽입 이미지














Spin 컨트롤 예제 입니다.

1. MFC 응용프로그램 프로젝트 생성
2. 다이얼로그 기반으로 선택하고 마침 선택


컨트롤 ID 설정(기본값 사용)
IDC_EDIT1
IDC_SPIN1


헤더에 스핀의 값을 기억할 변수 선언(SpinExDlg.h)
사용자 삽입 이미지








변수값 초기화...(SpinExDlg.cpp)
사용자 삽입 이미지










이제 마지막으로... 아래의 코드 작성...
(스핀 컨트롤 더블클릭하면 아래 코드 작성하도록 나옵니다)
사용자 삽입 이미지





















캡쳐 하는데 spin_val-- 아랫줄에 커서도 같이 찍혔네요 -0-''

음... 이로써 끝났습니다.


스핀 컨트롤의 경우에도 스크롤바와 같이...

SetRange(int Min, int Max)
SetPos(int)
GetPos()
가 분명 존재 합니다...

하지만, 저것들을 사용해서 범위 지정하고, 위치값 얻어오는 과정에서 이상한 값이 출력되고 맙니다.
위치값 뿐만 아니라 버튼 위,아래의 오작동에 대한 증상도 같이 나타납니다.
(궁금하면 직접 해보시길...)

비주얼 스튜디오 6.0과 2005에서 동일 증상이 나타납니다.

따라서 여기 예제에서는 저런것들은 쓰지 않고, 단지 △, ▽가 눌린것을 체크하여서 임의의 변수에 값을 저장한 다음 그것을 출력하는 방식을 취하게 되었습니다.
Posted by 해비
2007. 12. 26. 02:12

첨부된 소스파일은 Visual Studio 2005 (Service Pack 1) 에서 작성되었습니다.


방학 후 혼자 MFC 가지고 놀고 있습니다...
프로그래밍 내공(?) 수련중... 이라고 해도 될거 같군요~

한동안 프로그래밍 안하다가 단지 몇주만에 다시 간단한거 하나 하는데도 몇 시간이 걸려 버리는군요... OTL

실행 화면입니다.
사용자 삽입 이미지
















스크롤바 컨트롤의  경우, 그냥 폼에 갖다 놓는다고 해서 작동하지는 않습니다.

직접 실행해 보신분들은 아시겠지만...
마우스로 움직여도 원래 위치로 되돌아가고 맙니다.

그럼 천천히 시작해 보도록 하죠~

1. ScrollBarEx 라는 프로젝트 명으로 MFC 프로젝트 생성
2. 다이얼로그 기반 으로 선택 후, '마침' 선택

컨트롤 ID 설정(기본값 사용했습니다)
IDC_EDIT1
IDC_EDIT2
IDC_SCROLLBAR1
IDC_SCROLLBAR2

IDC_SCROLLBAR1 - 가로, IDC_EDIT1 - 가로 위치
IDC_SCROLLBAR2 - 세로, IDC_EDIT2 - 세로 위치



ScrollBarExDlg.h 파일에 다음과 같이 변수를 선언합니다.
사용자 삽입 이미지









ScrollBarExDlg.cpp 에 다음과 같이 초기값을 지정해 줍니다.
사용자 삽입 이미지





















OnInitDialog 부분은 다이얼로그가 생성되면서 실행되는 부분입니다.
따라서, 여기에 변수나 컨트롤의 초기화를 해 주면 딱 좋은 위치입니다.



폼의 WM_HSCROLL 메시지 부분입니다.
이 부분을 설정함으로써, 드디어 스크롤바가 정상작동을 하게 됩니다.
사용자 삽입 이미지





















SB_LINELEFT, SB_LINERIGHT는 각각 좌,우의 삼각형 모양 (◁,▷)을 클릭했을때 입니다.
SB_PAGELEFT, SB_PAGERIGHT는 각각 현재 위치 기준으로 좌, 우의 빈칸을 클릭했을때 입니다.
SB_THUMBTRACK 은 위치를 고정시키는 부분입니다.
(요거 빼먹으면 위 코드들은 말짱 도루묵 된다는 거~)



세로 스크롤바도 가로 스크롤바와 비슷합니다.
폼의 WM_VSCROLL 메시지 입니다.
사용자 삽입 이미지





















여기까지 입니다.

SB_LINEUP, SB_LINEDOWN, SB_PAGEUP, SB_PAGEDOWN은 위 가로 스크롤바와 기능이 비슷하므로 설명 생략합니다.

한가지 추가로 적자면... 이 부분 소스는 맨 아랫줄 1줄을 제외하고 건들필요 없습니다.
SB_LINEUP, SB_LINEDOWN, SB_PAGEUP, SB_PAGEDOWN는 각각
SB_LINELEFT, SB_LINERIGHT, SB_PAGELEFT, SB_PAGERIGHT로 두어도 정상적으로 동작합니다.

컴파일 후 실행하면 OK~
Posted by 해비
2007. 11. 18. 16:13


보충 설명 들어갑니다.

1. 컨트롤 변수 선언 방법
(Visual Studio 2005 기준...)

상단의 메뉴에서... 보기 -> 클래스 뷰 를 선택합니다.

사용자 삽입 이미지
또는 위 그림처럼 아래 부분 표시해 둔곳... 클... 부분 에 클릭하셔도 되겠습니다.

다음으로...

사용자 삽입 이미지


C_exam01Dlg 클래스에서 마우스 우클릭 -> 추가 -> 변수 추가 입니다.


사용자 삽입 이미지

위 예시는... IDC_BUTTON1의 ID를 가진 버튼의 컨트롤 변수 Button1 을 정의한 것입니다.

컨트롤 변수 항목에 체크 하고, 그 다음으로 컨트롤 ID를 설정 해야 하는데 옆에 역삼각형 누르면 현재 폼에 배치된 모든 컨트롤 ID가 나옵니다.

변수 형식은 컨트롤 에 따라 미리 정의 된것이 있습니다.
예) CEdit, CStatic, CBtuuon... 등...

변수 이름은 마음에 드는대로 정하면 되겠습니다.




2. 컨트롤 이벤트 처리 방법
이 부분은 딱히 특별한게 없네요...
다이얼로그 폼 디자인 할때, 버튼 배치시킨 다음 더블클릭 하면 자동으로 버튼 클릭 되었을 때 처리할 라인 입력하라고 나옵니다. (커서가 그쪽에 가 있죠...)
(단, VC++ 6.0 에서는 MFC Wizard 에서 설정 하는것으로 알고있습니다.)

하지만, 항상 클릭했을때... 라는 법은 없죠... 다양한 이벤트가 있으므로... 그것 설정 하는 부분을 소개 하겠습니다.

상단 메뉴... 보기 -> 리소스 보기 선택후...

_exam01 -> _exam01.rc -> Dialog -> IDD__EXAM01_DIALOG
(트리 형태 이므로 차례대로 접근하면 되겠습니다...)

그럼 디자인 화면으로 넘어오게 되는데용~

여기서... 컨트를 아무거나 아나 집어 봅니다 -.-;;

사용자 삽입 이미지

속성... 이라는 부분에 번개표시 가 있는데... 저거 누르면 됩니다
클릭 되었을 때...는  OnBnClickedButton 이라고 설정 되어있군요^^

다른 이벤트도 설정 저기서 직접 입력 하던가... 아니면 디폴드 값을 지정할 수 있습니다만...

디폴트 값 지정할려면 커서 갖다 놓게 되면 오른쪽에 역삼각형이 뜹니다.

그거 누르면 <추가> OnBnClickedButton  ... 등으로 나옵니다.

그거 누르면 되겠습니다....


Posted by 해비