2008.11.05 12:32

사용자 삽입 이미지

재귀함수를 이용한 n제곱 구하는 프로그램 예제 입니다.

A에 입력된 값의 B에 입력 된 값만큼 제곱하여 아래에 출력되어집니다.



- Visual Studio 2005 (SP1)에서 작성되었습니다.
Posted by 해비
2008.11.04 22:28
사용자 삽입 이미지

스택을 이용하여 10진수를 2진수로 변환 하는 예제 입니다.

IPv4 주소를 입력 받아서 각각의 10진수를 2진수로 출력하는 형태로 동작합니다.

<< NOTE >>
- IP주소는 각 항목당 반드시 3자리로 입력 되어져야 하며 아래의 형식을 지켜야 합니다.
  ###.###.###.###
ex) 202.193.255.101 - O
     192.168.0.1 - X (0과 1의 경우 000 또는 001로 표현해야 합니다)
     192.168.000.001 - O


- VisualStudio2005 (SP1)에서 작성되었습니다.
Posted by 해비
2008.09.17 20:29
학교에서 과제로 나온것을 한번 만들어 본 것입니다^^
사용자 삽입 이미지
실행한 화면이고 별다른 특징은 없습니다;;^^

프로그램 사양서
* 언어 : 자유선택. GUI 자유선택
* 반환기능, 여러잔 출력가능
* 커피(200), 우유(150), 코코아(100)
* Text 형태 출력



요구사항(소스 오픈 시)
- Visual Studio 2005 (SP1) 또는 상위버젼의 컴파일러

최소요구사항(실행 시, 요구사항 충족 시 필요없음)
- Visual C++ 2005 Runtime Library

별로 어려운 부분은 없으며, 소스에 주석을 달아놨습니다.

첨부파일 안에 Release 폴더 안에 해당 실행파일이 존재 합니다.
Posted by 해비
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 해비
2007.11.18 15:28


실행 결과...

사용자 삽입 이미지

설명...
- CEdit 컨트롤 2개에 각각 정수 값을 입력하고 Test !! 버튼 누르면 CStatic 컨트롤에 더한 값이 출력된다.

- Test 2 버튼을 누르면 위쪽의 CEdit 컨트롤에 "이것은 컨트롤 변수 연습입니다." 라는 문구가 출력된다.



사용 툴 : Visual Studio 2005 (SP1)
운영체제 : Microsoft Windows Vista Home Premium K (32-bit)
프로젝트 명 : _exam01
- 새 프로젝트 에서 MFC 응용프로그램 선택 후, Dialog Based로 선택후 Finish
-----------------------------------------------------------------------
컨트롤 ID 설정... (기본값 으로 사용했음^^)
IDC_EDIT1
IDC_EDIT2
IDC_STATIC
IDC_BUTTON1
IDC_BUTTON2
(다이얼로그 베이스로 생성했을 때, 자동생성된 버튼 확인, 취소는 제외됨)


// _exam01Dlg.cpp 부분...
사용자 삽입 이미지


컨트롤 변수 설정...
(하단의 코드 작성 전에 반드시 컨트롤 변수부터 설정을 해야 합니다.)
IDC_EDIT1 - Edit1
IDC_BUTTON2 - Button2


사용자 삽입 이미지


F7 눌러서 컴파일 하고 툴바의 녹색 '▷' 아이콘 눌러서 실행 하면 맨 위에 결과 처럼 나옵니다.



*형변환 관련하여 사용된함수

_T()
유니코드 대응... 이라고 하는군요
관련 내용이므로 참고 바랍니다.
http://kin.naver.com/db/detail.php?d1id=1&dir_id=10104&eid=b/kxwRBaCY3M1tM4eRfyujt7kLEuhjgR&qb=TUZDIF9U

_ttoi()
CString형의 값을 INT 형으로 바꾸기 위해 사용되었습니다.


Posted by 해비