2007년 06월 26일
VS.NET 2003을 사용하여 .NET Compact Framework 응용 프로그램 만들기
적용 대상:
Microsoft Visual Studio.NET 2003
Microsoft.NET Compact Framework
Microsoft Windows CE
요약 : 이 기사에서는 Visual Studio .NET 2003을 사용하여 C#으로 .NET Compact Framework 응용 프로그램을 빌드 및 디버깅하는 단계별 지침을 제공합니다. 여러분이 만들 응용 프로그램은 Windows CE 기반 에뮬레이터에서 작동하는 C# 폼 기반 응용 프로그램입니다. 이 응용 프로그램은 MouseDown, MouseMove 및 MouseUp 이벤트를 처리하며 사용자 자유 곡선 데이터를 캡처합니다. 캡처된 자유 곡선 데이터는 C#으로 작성된 데스크톱 .NET Framework 응용 프로그램에서 볼 수 있습니다. 이 기사는 세 부분으로 나누어지며 각 부분에는 사용자가 완성할 수 있는 여러 가지 연습이 포함되어 있습니다. 모든 단계를 완료하는 데는 60분 정도 소요됩니다.
Microsoft 다운로드 센터에서 Windows CE 5.0 Embedded Development Labs.msi 를 다운로드하십시오.
소개
이 기사에서는 Microsoft Windows CE 기반 장치에서 마우스 움직임을 캡처하는 응용 프로그램을 작성합니다. 이는 휴대용 장치에서 서명을 캡처하는 것과 비슷합니다.
이 기사의 연습을 진행하려면 워크스테이션에 다음 소프트웨어가 설치되어 있어야 합니다.
☆ Microsoft Windows XP Professional
☆ Microsoft Visual Studio .NET 2003
이 기사에서는 x86 기반 장치를 에뮬레이트하는 Microsoft Windows CE .NET 에뮬레이터를 사용합니다. 이 기사에서 수행할 단계는 Windows CE 기반 장치용 응용 프로그램을 빌드하는 데 필요한 단계와 동일합니다.
이 연습에는 연습 진행에 도움이 되는 CodeClip 응용 프로그램 등의 다운로드가 포함되어 있습니다.
이 기사의 주제에 대한 자세한 내용은 Microsoft Windows Embedded Developer Center 또는 Microsoft Visual Studio 개발자 센터를 참조하십시오.
1부: 초기 응용 프로그램 만들기
연습의 1부에서는 다음 절차를 수행합니다.
☆ 기본 응용 프로그램 만들기
☆ 프로젝트 옵션 설정
☆ 폼의 제목 표시줄에 표시되는 텍스트 변경
☆ 응용 프로그램을 끝내기 위한 메뉴 명령 이름 바꾸기
☆ 응용 프로그램 빌드 및 테스트
이러한 절차를 통해 사용자 입력을 처리하고 회사 네트워크 또는 인터넷에서 통신하는 응용 프로그램을 빌드하는 과정이 빠르고 손쉽게 이루어짐을 알게 될 것입니다.
기본 응용 프로그램을 만들려면
1. 바탕 화면에서 바로 가기를 사용하여 Visual Studio .NET 2003을 시작합니다.
2. 파일 메뉴에서 새 프로젝트를 클릭합니다.
3. 프로젝트 형식에서 Visual C# 프로젝트를 선택합니다.
4. 템플릿에서 스마트 장치 응용 프로그램을 선택합니다.
5. 이름 상자에 Scribble을 입력합니다.
다음 그림은 새 프로젝트 대화 상자에서 앞서 선택한 내용을 보여 줍니다.

1. 확인을 클릭합니다.
이제 프로젝트 옵션을 설정합니다. 여러 가지 형식의 프로젝트를 만들 수 있습니다.
Pocket PC 또는 Windows CE 기반 장치를 대상으로 할 수도 있습니다. 왜 두 가지 마법사 옵션이 있는지 궁금하실 것입니다. Smartphone SDK를 사용하는 경우에는 옵션이 세 가지입니다. 모든 응용 프로그램은 MSIL(Microsoft Intermediate Language)로 생성됩니다. 이 언어는 프로세서와 운영 체제의 영향을 받지 않습니다. 옵션이 달라지는 이유는 Pocket PC 장치 및 Windows CE 기반 장치의 화면 레이아웃이 일반적으로 다르기 때문입니다. Pocket PC 장치에서는 화면 아래쪽에 메뉴가 표시되고 Windows CE 기반 장치에서는 보통 메뉴가 화면 위쪽에 표시됩니다. 마법사는 올바른 폼 크기 및 메뉴 레이아웃을 포함하는 프레임워크 응용 프로그램을 만듭니다.
프로젝트 옵션을 설정하려면
1. 다음 그림과 같이 스마트 장치 응용 프로그램 마법사에서 플랫폼으로는 Windows CE를 선택하고 프로젝트 형식으로는
Windows 응용 프로그램을 선택합니다.

2. 확인을 클릭합니다.
그림 1에서 핵심 응용 프로그램을 생성한 후의 Visual Studio .NET 사용자 인터페이스 모양을 볼 수 있습니다. 창 왼쪽에는 폼에 추가할 수 있는 다양한 컨트롤이 표시됩니다. 창 가운데에는 응용 프로그램의 폼이 표시됩니다. 이 영역에서 소스 코드를 편집 또는 추가합니다. 그리고 창 오른쪽에는 솔루션 탐색기(작업 영역)와 응용 프로그램의 여러 가지 속성 설정을 위한 영역이 표시됩니다.

여기서 폼의 제목 표시줄에 표시되는 기본 텍스트를 변경할 수 있습니다.
제목 표시줄에 표시되는 텍스트를 변경하려면
1. 다음 그림과 같이 Form1의 Text 속성을 선택합니다.
2. 텍스트를 Form1에서 Scribble로 변경합니다.
폼 제목이 변경됩니다. 이제 응용 프로그램을 쉽게 끝낼 수 있도록 응용 프로그램에 메뉴를 추가할 수 있습니다.
3. Visual Studio 도구 상자에서 MainMenu를 클릭하여 폼으로 끕니다.
다음 그림과 같이 메뉴가 폼에 추가됩니다.

메뉴 명령 추가는 매우 간단합니다.
4. 폼의 메뉴에서 여기에 입력하십시오.를 클릭합니다.
5. 파일을 입력하고 Enter 키를 누릅니다.
6. 자유 곡선 보내기를 입력하고 Enter 키를 누릅니다.
7. 끝내기를 입력하고 Enter 키를 누릅니다.
8. 끝내기 메뉴 명령을 선택합니다.
다음 그림과 같이 선택한 메뉴 명령이 적용된 속성이 표시됩니다.

기본적으로 파일 | 끝내기 메뉴 명령의 이름은 menuItem2입니다. 이 메뉴 명령에 코드를 추가하면 클릭 처리기는 menuItem2_Click으로 표시됩니다. 이 메뉴 명령의 용도를 보다 확실히 알 수 있도록 이름을 바꾸는 것이 좋습니다.
응용 프로그램을 끝내기 위한 메뉴 명령의 이름을 바꾸려면
1. 속성 창에서 menuItem2를 FileExit로 변경합니다.
2. 폼의 메뉴 명령에서 파일 | 끝내기를 두 번 클릭합니다.
이 단계를 실행하면 다음 그림과 같이 코드 편집 창이 열립니다.

1. FileExit_Click 처리기에서 다음 그림과 같이 this.Close( );를 입력합니다.

Microsoft IntelliSense에서 "this" 항목으로 수행할 수 있는 작업을 표시합니다.
이제 응용 프로그램을 빌드 및 테스트할 수 있습니다. 물론 이 단계에서 응용 프로그램은 아직 완료된 것이 아닙니다. 클라이언트 영역에서 자유 곡선을 그릴 수 있도록 응용 프로그램에 몇 가지 기능을 추가해야 합니다.
응용 프로그램을 빌드 및 테스트하려면
1. 빌드 | Scribble 빌드를 클릭합니다.
경고나 오류 없이 응용 프로그램이 빌드되어야 합니다. 이제 응용 프로그램을 배포할 수 있습니다.
2. 디버그 | 디버깅하지 않고 시작을 클릭합니다. 디버깅은 이 문서 뒷부분에서 수행합니다.
3. 다음 그림과 같이 응용 프로그램을 배포할 수 있는 장치 목록이 있는 대화 상자가 나타나면
이 연습에서는 Windows CE .NET 에뮬레이터(기본값)을 선택합니다.

4. 배포를 클릭합니다.
이 단계를 실행하면 Windows CE .NET 에뮬레이터가 시작되고 Microsoft .NET Compact Framework가 배포됩니다.
.NET Compact Framework가 배포되고 나면 다음 그림과 같이 응용 프로그램이 시작됩니다.

응용 프로그램이 올바르게 실행되고 있으므로 이제 MouseDown, MouseMove 및 MouseUp 이벤트를 처리할 코드를 추가할 수 있습니다.
Scribble 응용 프로그램에서 파일 | 끝내기를 클릭합니다.
2부: MouseDown, MouseMove 및 MouseUp 이벤트 처리
Scribble 응용 프로그램은 마우스 단추가 클릭된 상태에서의 움직임만을 캡처합니다. 그러므로 마우스를 클릭한 상태인지(캡처함) 클릭하지 않은 상태인지(캡처 안 함)를 표시하기 위한 부울이 필요합니다. MouseMove 처리기에서 부울을 확인합니다. 부울이 설정되어 있으면 점 배열에 새 X, Y 점을 추가합니다. 이 점은 응용 프로그램에도 추가해야 합니다.
이 연습에서는 응용 프로그램의 클라이언트 영역에 그려지는 모든 점을 추적하고 이 점 목록을 ArrayList에 저장합니다.
이번 연습에서 진행할 단계는 다음과 같습니다.
☆ 점을 저장할 클래스 만들기
☆ 클래스에 코드 추가
☆ 배열 만들기
☆ 디자인 보기로 전환
☆ MouseDown 이벤트 선택
☆ MouseDown 이벤트 처리기에 코드 추가
☆ MouseUp 이벤트 처리기에 코드 추가
☆ 응용 프로그램 빌드
점을 저장할 클래스를 만들려면
1. 프로젝트 메뉴에서 클래스 추가를 클릭합니다.
2. 다음 그림과 같이 이름 상자에 csPoint.cs를 입력합니다.

3. 열기를 클릭합니다.
이 단계를 실행하면 새 클래스의 소스가 열립니다. 이 클래스는 동일한 응용 프로그램 네임스페이스인
"Scribble"의 일부입니다.
4. csPoint의 클래스 정의를 삭제합니다.
그러면 다음 코드가 남습니다.
using System;
namespace Scribble
{
}
이제 클래스에 코드를 추가해야 합니다. 코드를 직접 입력하는 대신 CodeClip이라는 도구를 사용하여 코드를 붙여 넣을 수 있습니다. CodeClip은 미리 선택한 코드 조각을 클립보드에 간편하게 복사할 수 있도록 하는 도우미 응용 프로그램입니다. CodeClip은 창 위쪽에 투명한 파란색 배너로 나타납니다.
클래스에 코드를 추가하려면
1. CodeClip 도구를 시작합니다.
2. Compact Framework Lab을 엽니다.
3. csPoint 항목을 두 번 클릭합니다.
이 단계를 실행하면 csPoint 코드가 클립보드에 복사됩니다.
1. 해당 코드를 csPoint 클래스 파일에 붙여 넣습니다.
이제 클래스 파일은 다음과 같습니다. 이는 MouseDown 이벤트 또는 MouseMove 이벤트에서
사용할 X 및 Y 위치를 저장하는 매우 간단한 클래스입니다.
using System;
namespace Scribble
{
public class csPoint
{
public csPoint(int iX,int iY)
{
x=iX;
y=iY;
}
public int GetX( )
{
return x;
}
public int GetY( )
{
return y;
}
int x;
int y;
}
}
응용 프로그램은 마우스 클릭 여부 및 이전 마우스 위치에 대한 정보를 저장해야 합니다. 또한 해당 점을 보관하기 위한 배열이 필요합니다. 이 배열은 응용 프로그램의 전역 변수가 됩니다.
배열을 만들려면
1. 다음 그림과 같이 Form1.cs 탭을 클릭하여 주 응용 프로그램 코드로 돌아옵니다.

2. FileExit 함수를 찾습니다.
3. CodeClip을 사용하여 Globals 코드를 클립보드에 복사합니다.
4. Globals 코드를 응용 프로그램에서 FileExit 처리기 바로 앞에 붙여 넣습니다.
Windows CE용 응용 프로그램을 작성할 때는 Microsoft Win32, MFC(Microsoft Foundation Classes) 또는 관리되는 코드 등 다양한 방법 중에서 선택할 수 있습니다. Win32 응용 프로그램에 MouseDown, MouseUp 및 MouseMove 이벤트 처리기를 추가하려면 Windows에서 응용 프로그램으로 보내는 메시지를 파악해야 합니다. 이 메시지는 WM_LBUTTONDOWN, WM_MOUSEMOVE 및 WM_LBUTTONUP입니다. Microsoft eMbedded Visual C++ 및 MFC에서는 마법사를 통해 현재 클래스가 처리할 수 있는 각 Windows 메시지의 목록이 표시되므로 처리기를 좀 더 쉽게 추가할 수 있습니다.
다음 절차를 통해 마우스 이벤트 처리기를 .NET Compact Framework 응용 프로그램에 매우 쉽게 추가할 수 있습니다.
프로젝트 탭에는 Form1.cs가 굵게 표시됩니다. 이는 현재 열려 있는 문서입니다. 즉, 현재 폼의 코드 보기가 표시되어 있으므로 이벤트 처리기를 추가하려면 디자인 보기로 전환해야 합니다.
디자인 보기로 전환하려면
1. 다음 그림과 같이 프로젝트 창에서 Form1.cs [디자인] 탭을 클릭합니다.

Visual Studio 오른쪽 아래의 속성 창에서 이름, 색 및 글꼴 크기와 같은 이 폼의 여러 가지 특성을 변경할 수 있습니다. 그림 2는 속성 창을 보여 줍니다.
속성 단추 옆에 이벤트 단추가 있습니다. 이 단추는 현재 선택한 폼이나 컨트롤의 이벤트를 선택하는 데 사용됩니다.

MouseDown 이벤트를 선택하려면
1. 속성 창에서 번개 모양을 클릭합니다.
2. 다음 그림과 같이 마우스 이벤트가 표시될 때까지 속성 창을 스크롤합니다.
3. MouseDown 이벤트를 두 번 클릭합니다.
이 단계를 실행하면 MouseDown 처리기가 응용 프로그램에 추가되고 코드 편집 창이 열립니다.
이제 MouseDown 처리기에 코드를 추가해야 합니다. 여기서도 CodeClip을 사용하면 편리합니다.
MouseDown 처리기에 코드를 추가하려면
1. CodeClip 도구를 시작합니다.
2. 다음 그림과 같이 MouseDown 항목을 선택합니다.

1. Copy(복사) 단추를 클릭합니다.
2. Visual Studio .NET으로 돌아옵니다.
3. 편집 | 붙여넣기 메뉴 명령을 클릭하여 텍스트를 붙여 넣습니다.
이 코드는 bMouseDown 부울을 true로 설정하고 현재 X 및 Y 위치를 저장하며 점을 배열에 추가합니다.
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
bMouseDown=true;
x=e.X;
y=e.Y;
arList.Add(new csPoint(x,y));
}
4. 프로젝트 창에서 Form1.cs [디자인] 탭을 클릭합니다.
5. MouseMove 이벤트를 찾아 두 번 클릭합니다.
6. CodeClip 배너를 클릭하여 CodeClip 대화 상자를 표시합니다.
7. MouseMove 항목을 선택한 다음 Copy(복사) 단추를 클릭합니다.
8. Visual Studio .NET으로 돌아옵니다.
9. 편집 | 붙여넣기 메뉴 명령을 클릭하여 텍스트를 붙여 넣습니다.
다음 MouseMove 이벤트 코드는 MouseDown 이벤트 코드보다 약간 더 복잡합니다. 먼저 마우스 클릭 여부를 확인합니다. 마우스 단추를 클릭하지 않은 상태에서도 MouseMove 알림은 표시됩니다. 마우스 단추를 클릭한 상태인 경우, Win32 프로그래밍의 DeviceContext와 비슷한 Graphics 개체를 만듭니다. 그런 다음 이전 점에서 새 점으로 선을 그립니다. 이 경우 선은 빨간색으로 그립니다. Win32에서 모든 색은 RGB(빨강, 녹색 및 파랑) 값으로 참조되므로 색을 쉽게 바꿀 수 있습니다.
private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (bMouseDown)
{
Graphics gr=this.CreateGraphics();
if (x == -1 && y == -1)
{
x=e.X;
y=e.Y;
}
gr.DrawLine(new Pen(Color.Red),e.X,e.Y,x,y);
x=e.X;
y=e.Y;
arList.Add(new csPoint(x,y));
}
}
MouseUp 처리기에 코드를 추가하려면
1. 프로젝트 창에서 Form1.cs [디자인] 탭을 클릭합니다.
2. MouseUp 이벤트를 찾아 두 번 클릭합니다.
3. CodeClip 배너를 클릭하여 CodeClip 대화 상자를 표시합니다.
4. MouseUp 항목을 선택한 다음 복사 단추를 클릭합니다.
5. Visual Studio .NET으로 돌아옵니다.
6. 편집 | 붙여넣기 메뉴 명령을 클릭하여 텍스트를 붙여 넣습니다.
MouseUp 처리기에서는 다음 코드와 같이 bMouseDown 부울을 false로 설정하여 현재 마우스를 클릭하지 않은 상태임을 나타내고 값이 -1인 점을 추가하여 선분을 끝냈음을 나타냅니다.
private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
bMouseDown=false;
arList.Add(new csPoint(-1,-1));
}
다음으로는 응용 프로그램을 빌드합니다.
응용 프로그램을 빌드하려면
1. 빌드 | Scribble 빌드를 클릭합니다.
경고나 오류 없이 응용 프로그램이 빌드되어야 합니다. 이제 응용 프로그램을 배포할 수 있습니다.
2. 디버그 | 디버깅하지 않고 시작을 클릭합니다. 디버깅은 이 문서 뒷부분에서 수행합니다.
3. 다음 그림과 같이 응용 프로그램을 배포할 수 있는 장치 목록이 있는 대화 상자가 나타나면
이 연습에서는 Windows CE .NET 에뮬레이터(기본값)을 선택합니다.

4. 배포를 클릭하면 응용 프로그램이 배포 및 시작됩니다.
5. 마우스를 움직여 보고 응용 프로그램에 잉크가 표시되지 않는 것을 확인하십시오.
응용 프로그램은 마우스 단추를 클릭할 때만 잉크를 표시합니다.
6. 왼쪽 마우스 단추를 클릭한 상태로 마우스를 움직인 다음 마우스 단추를 놓습니다.
응용 프로그램에서 그린 선이 다음 그림과 같이 나타납니다.

축하합니다! C#로 Scribble 응용 프로그램을 작성했습니다.
7. Scribble 응용 프로그램에서 파일 | 끝내기를 클릭합니다.
3부: C# Scribble 응용 프로그램 디버깅
지금까지 응용 프로그램을 빌드 및 실행해 보았습니다. 이제 새 응용 프로그램을 디버깅하는 방법을 알아보겠습니다. eMbedded Visual C++ 또는 Visual Studio .NET 2003을 통해 Windows CE용 응용 프로그램을 작성하는 경우 운영 체제 및 응용 프로그램은 개발 컴퓨터에 연결된 원격 장치에서 실행됩니다. 그러므로 디버깅하기 전에 장치에 응용 프로그램을 다운로드해야 합니다. 사용자 작업 면에서 볼 때 Windows CE 응용 프로그램 디버깅은 데스크톱 응용 프로그램 디버깅과 매우 비슷합니다.
이번 연습에서는 MouseDown 처리기에 중단점을 설정하고 응용 프로그램을 단계별로 실행하여 해당 흐름을 추적합니다.
MouseDown 처리기에 중단점을 설정하고 응용 프로그램을 단계별로 실행하려면
1. 다음 그림과 같이 Form1.cs 탭을 클릭하여 주 응용 프로그램 코드로 돌아갑니다.

2. Form1_MouseDown 함수를 찾습니다.
3. bMouseDown=true; 줄을 클릭하고 F9 키를 눌러 해당 줄에 중단점을 설정합니다.
그러면 다음 그림과 같이 bMouseDown=true; 줄 옆의 여백에 빨간색 중단점 기호가 표시됩니다.
이제 응용 프로그램을 실행할 수 있습니다.
4. 디버그 | 시작을 클릭하거나 F5 키를 누릅니다.
이 단계를 실행하면 필요한 경우 응용 프로그램이 빌드되며 에뮬레이터로 다운로드됩니다.
5. 응용 프로그램이 에뮬레이터에서 시작되고 나면 응용 프로그램 클라이언트 영역을 클릭합니다.
다음 그림과 같이 응용 프로그램은 bMouseDown=true; 줄에서 중단됩니다. 이제 코드 줄을 단계별로 실행할 수 있습니다.

응용 프로그램을 실행하는 동안 살펴볼 수 있는 다양한 항목이 있습니다. Visual Studio 응용 프로그램의 왼쪽 아래 창에는
검색 결과 또는 다른 항목이 표시될 수 있습니다. 이 창을 변경하여 현재 지역 변수가 표시되도록 할 수 있습니다.
6. 다음 그림과 같이 지역 변수 목록에서 this 항목을 확장합니다.
bMouseDown은 현재 false로 설정되어 있으며 X 및 Y 값은 현재 0으로 설정되어 있습니다.
7. F11 키를 눌러 응용 프로그램을 단계별로 실행합니다.
코드를 단계별로 실행하면 X, Y 및 bMouseDown 값이 변경됩니다.
또한 새 ArrayList 항목을 추가하는 코드 줄에 도달하면 csPoint 클래스의 인스턴스를 "새로 추가"해야 합니다.
코드를 단계별로 실행하면 csPoint 클래스에 도달합니다.
8. F5 키를 눌러 응용 프로그램을 실행합니다.
9. 파일 | 끝내기를 클릭합니다.
요약
다음은 이 기사에서 제공된 연습의 요약입니다.
☆ Windows CE용 C# 스마트 장치 응용 프로그램을 만들었습니다.
☆ MouseMove, MouseDown 및 MouseUp 이벤트 지원을 폼에 추가했습니다.
☆ 사용자 지정 펜 만들기를 포함하여 그리기 지원을 추가했습니다.
☆ C# Scribble 응용 프로그램을 디버깅했습니다.
-------- 출처 : robiz 님의 네이버 블로그 "novice" : http://blog.naver.com/robiz?Redirect=Log&logNo=100012036698
Microsoft Visual Studio.NET 2003
Microsoft.NET Compact Framework
Microsoft Windows CE
요약 : 이 기사에서는 Visual Studio .NET 2003을 사용하여 C#으로 .NET Compact Framework 응용 프로그램을 빌드 및 디버깅하는 단계별 지침을 제공합니다. 여러분이 만들 응용 프로그램은 Windows CE 기반 에뮬레이터에서 작동하는 C# 폼 기반 응용 프로그램입니다. 이 응용 프로그램은 MouseDown, MouseMove 및 MouseUp 이벤트를 처리하며 사용자 자유 곡선 데이터를 캡처합니다. 캡처된 자유 곡선 데이터는 C#으로 작성된 데스크톱 .NET Framework 응용 프로그램에서 볼 수 있습니다. 이 기사는 세 부분으로 나누어지며 각 부분에는 사용자가 완성할 수 있는 여러 가지 연습이 포함되어 있습니다. 모든 단계를 완료하는 데는 60분 정도 소요됩니다.
Microsoft 다운로드 센터에서 Windows CE 5.0 Embedded Development Labs.msi 를 다운로드하십시오.
소개
이 기사에서는 Microsoft Windows CE 기반 장치에서 마우스 움직임을 캡처하는 응용 프로그램을 작성합니다. 이는 휴대용 장치에서 서명을 캡처하는 것과 비슷합니다.
이 기사의 연습을 진행하려면 워크스테이션에 다음 소프트웨어가 설치되어 있어야 합니다.
☆ Microsoft Windows XP Professional
☆ Microsoft Visual Studio .NET 2003
이 기사에서는 x86 기반 장치를 에뮬레이트하는 Microsoft Windows CE .NET 에뮬레이터를 사용합니다. 이 기사에서 수행할 단계는 Windows CE 기반 장치용 응용 프로그램을 빌드하는 데 필요한 단계와 동일합니다.
이 연습에는 연습 진행에 도움이 되는 CodeClip 응용 프로그램 등의 다운로드가 포함되어 있습니다.
이 기사의 주제에 대한 자세한 내용은 Microsoft Windows Embedded Developer Center 또는 Microsoft Visual Studio 개발자 센터를 참조하십시오.
1부: 초기 응용 프로그램 만들기
연습의 1부에서는 다음 절차를 수행합니다.
☆ 기본 응용 프로그램 만들기
☆ 프로젝트 옵션 설정
☆ 폼의 제목 표시줄에 표시되는 텍스트 변경
☆ 응용 프로그램을 끝내기 위한 메뉴 명령 이름 바꾸기
☆ 응용 프로그램 빌드 및 테스트
이러한 절차를 통해 사용자 입력을 처리하고 회사 네트워크 또는 인터넷에서 통신하는 응용 프로그램을 빌드하는 과정이 빠르고 손쉽게 이루어짐을 알게 될 것입니다.
기본 응용 프로그램을 만들려면
1. 바탕 화면에서 바로 가기를 사용하여 Visual Studio .NET 2003을 시작합니다.
2. 파일 메뉴에서 새 프로젝트를 클릭합니다.
3. 프로젝트 형식에서 Visual C# 프로젝트를 선택합니다.
4. 템플릿에서 스마트 장치 응용 프로그램을 선택합니다.
5. 이름 상자에 Scribble을 입력합니다.
다음 그림은 새 프로젝트 대화 상자에서 앞서 선택한 내용을 보여 줍니다.

1. 확인을 클릭합니다.
이제 프로젝트 옵션을 설정합니다. 여러 가지 형식의 프로젝트를 만들 수 있습니다.
Pocket PC 또는 Windows CE 기반 장치를 대상으로 할 수도 있습니다. 왜 두 가지 마법사 옵션이 있는지 궁금하실 것입니다. Smartphone SDK를 사용하는 경우에는 옵션이 세 가지입니다. 모든 응용 프로그램은 MSIL(Microsoft Intermediate Language)로 생성됩니다. 이 언어는 프로세서와 운영 체제의 영향을 받지 않습니다. 옵션이 달라지는 이유는 Pocket PC 장치 및 Windows CE 기반 장치의 화면 레이아웃이 일반적으로 다르기 때문입니다. Pocket PC 장치에서는 화면 아래쪽에 메뉴가 표시되고 Windows CE 기반 장치에서는 보통 메뉴가 화면 위쪽에 표시됩니다. 마법사는 올바른 폼 크기 및 메뉴 레이아웃을 포함하는 프레임워크 응용 프로그램을 만듭니다.
프로젝트 옵션을 설정하려면
1. 다음 그림과 같이 스마트 장치 응용 프로그램 마법사에서 플랫폼으로는 Windows CE를 선택하고 프로젝트 형식으로는
Windows 응용 프로그램을 선택합니다.

2. 확인을 클릭합니다.
그림 1에서 핵심 응용 프로그램을 생성한 후의 Visual Studio .NET 사용자 인터페이스 모양을 볼 수 있습니다. 창 왼쪽에는 폼에 추가할 수 있는 다양한 컨트롤이 표시됩니다. 창 가운데에는 응용 프로그램의 폼이 표시됩니다. 이 영역에서 소스 코드를 편집 또는 추가합니다. 그리고 창 오른쪽에는 솔루션 탐색기(작업 영역)와 응용 프로그램의 여러 가지 속성 설정을 위한 영역이 표시됩니다.

그림 1. Visual Studio .NET의 핵심 응용 프로그램
여기서 폼의 제목 표시줄에 표시되는 기본 텍스트를 변경할 수 있습니다.
제목 표시줄에 표시되는 텍스트를 변경하려면
1. 다음 그림과 같이 Form1의 Text 속성을 선택합니다.

폼 제목이 변경됩니다. 이제 응용 프로그램을 쉽게 끝낼 수 있도록 응용 프로그램에 메뉴를 추가할 수 있습니다.
3. Visual Studio 도구 상자에서 MainMenu를 클릭하여 폼으로 끕니다.
다음 그림과 같이 메뉴가 폼에 추가됩니다.

메뉴 명령 추가는 매우 간단합니다.
4. 폼의 메뉴에서 여기에 입력하십시오.를 클릭합니다.
5. 파일을 입력하고 Enter 키를 누릅니다.
6. 자유 곡선 보내기를 입력하고 Enter 키를 누릅니다.
7. 끝내기를 입력하고 Enter 키를 누릅니다.
8. 끝내기 메뉴 명령을 선택합니다.
다음 그림과 같이 선택한 메뉴 명령이 적용된 속성이 표시됩니다.

기본적으로 파일 | 끝내기 메뉴 명령의 이름은 menuItem2입니다. 이 메뉴 명령에 코드를 추가하면 클릭 처리기는 menuItem2_Click으로 표시됩니다. 이 메뉴 명령의 용도를 보다 확실히 알 수 있도록 이름을 바꾸는 것이 좋습니다.
응용 프로그램을 끝내기 위한 메뉴 명령의 이름을 바꾸려면
1. 속성 창에서 menuItem2를 FileExit로 변경합니다.
2. 폼의 메뉴 명령에서 파일 | 끝내기를 두 번 클릭합니다.
이 단계를 실행하면 다음 그림과 같이 코드 편집 창이 열립니다.

1. FileExit_Click 처리기에서 다음 그림과 같이 this.Close( );를 입력합니다.

Microsoft IntelliSense에서 "this" 항목으로 수행할 수 있는 작업을 표시합니다.
이제 응용 프로그램을 빌드 및 테스트할 수 있습니다. 물론 이 단계에서 응용 프로그램은 아직 완료된 것이 아닙니다. 클라이언트 영역에서 자유 곡선을 그릴 수 있도록 응용 프로그램에 몇 가지 기능을 추가해야 합니다.
응용 프로그램을 빌드 및 테스트하려면
1. 빌드 | Scribble 빌드를 클릭합니다.
경고나 오류 없이 응용 프로그램이 빌드되어야 합니다. 이제 응용 프로그램을 배포할 수 있습니다.
2. 디버그 | 디버깅하지 않고 시작을 클릭합니다. 디버깅은 이 문서 뒷부분에서 수행합니다.
3. 다음 그림과 같이 응용 프로그램을 배포할 수 있는 장치 목록이 있는 대화 상자가 나타나면
이 연습에서는 Windows CE .NET 에뮬레이터(기본값)을 선택합니다.

4. 배포를 클릭합니다.
이 단계를 실행하면 Windows CE .NET 에뮬레이터가 시작되고 Microsoft .NET Compact Framework가 배포됩니다.
.NET Compact Framework가 배포되고 나면 다음 그림과 같이 응용 프로그램이 시작됩니다.

응용 프로그램이 올바르게 실행되고 있으므로 이제 MouseDown, MouseMove 및 MouseUp 이벤트를 처리할 코드를 추가할 수 있습니다.
Scribble 응용 프로그램에서 파일 | 끝내기를 클릭합니다.
2부: MouseDown, MouseMove 및 MouseUp 이벤트 처리
Scribble 응용 프로그램은 마우스 단추가 클릭된 상태에서의 움직임만을 캡처합니다. 그러므로 마우스를 클릭한 상태인지(캡처함) 클릭하지 않은 상태인지(캡처 안 함)를 표시하기 위한 부울이 필요합니다. MouseMove 처리기에서 부울을 확인합니다. 부울이 설정되어 있으면 점 배열에 새 X, Y 점을 추가합니다. 이 점은 응용 프로그램에도 추가해야 합니다.
이 연습에서는 응용 프로그램의 클라이언트 영역에 그려지는 모든 점을 추적하고 이 점 목록을 ArrayList에 저장합니다.
이번 연습에서 진행할 단계는 다음과 같습니다.
☆ 점을 저장할 클래스 만들기
☆ 클래스에 코드 추가
☆ 배열 만들기
☆ 디자인 보기로 전환
☆ MouseDown 이벤트 선택
☆ MouseDown 이벤트 처리기에 코드 추가
☆ MouseUp 이벤트 처리기에 코드 추가
☆ 응용 프로그램 빌드
점을 저장할 클래스를 만들려면
1. 프로젝트 메뉴에서 클래스 추가를 클릭합니다.
2. 다음 그림과 같이 이름 상자에 csPoint.cs를 입력합니다.

3. 열기를 클릭합니다.
이 단계를 실행하면 새 클래스의 소스가 열립니다. 이 클래스는 동일한 응용 프로그램 네임스페이스인
"Scribble"의 일부입니다.
4. csPoint의 클래스 정의를 삭제합니다.
그러면 다음 코드가 남습니다.
using System;
namespace Scribble
{
}
이제 클래스에 코드를 추가해야 합니다. 코드를 직접 입력하는 대신 CodeClip이라는 도구를 사용하여 코드를 붙여 넣을 수 있습니다. CodeClip은 미리 선택한 코드 조각을 클립보드에 간편하게 복사할 수 있도록 하는 도우미 응용 프로그램입니다. CodeClip은 창 위쪽에 투명한 파란색 배너로 나타납니다.
클래스에 코드를 추가하려면
1. CodeClip 도구를 시작합니다.
2. Compact Framework Lab을 엽니다.
3. csPoint 항목을 두 번 클릭합니다.
이 단계를 실행하면 csPoint 코드가 클립보드에 복사됩니다.
1. 해당 코드를 csPoint 클래스 파일에 붙여 넣습니다.
이제 클래스 파일은 다음과 같습니다. 이는 MouseDown 이벤트 또는 MouseMove 이벤트에서
사용할 X 및 Y 위치를 저장하는 매우 간단한 클래스입니다.
using System;
namespace Scribble
{
public class csPoint
{
public csPoint(int iX,int iY)
{
x=iX;
y=iY;
}
public int GetX( )
{
return x;
}
public int GetY( )
{
return y;
}
int x;
int y;
}
}
응용 프로그램은 마우스 클릭 여부 및 이전 마우스 위치에 대한 정보를 저장해야 합니다. 또한 해당 점을 보관하기 위한 배열이 필요합니다. 이 배열은 응용 프로그램의 전역 변수가 됩니다.
배열을 만들려면
1. 다음 그림과 같이 Form1.cs 탭을 클릭하여 주 응용 프로그램 코드로 돌아옵니다.

2. FileExit 함수를 찾습니다.
3. CodeClip을 사용하여 Globals 코드를 클립보드에 복사합니다.
4. Globals 코드를 응용 프로그램에서 FileExit 처리기 바로 앞에 붙여 넣습니다.
Windows CE용 응용 프로그램을 작성할 때는 Microsoft Win32, MFC(Microsoft Foundation Classes) 또는 관리되는 코드 등 다양한 방법 중에서 선택할 수 있습니다. Win32 응용 프로그램에 MouseDown, MouseUp 및 MouseMove 이벤트 처리기를 추가하려면 Windows에서 응용 프로그램으로 보내는 메시지를 파악해야 합니다. 이 메시지는 WM_LBUTTONDOWN, WM_MOUSEMOVE 및 WM_LBUTTONUP입니다. Microsoft eMbedded Visual C++ 및 MFC에서는 마법사를 통해 현재 클래스가 처리할 수 있는 각 Windows 메시지의 목록이 표시되므로 처리기를 좀 더 쉽게 추가할 수 있습니다.
다음 절차를 통해 마우스 이벤트 처리기를 .NET Compact Framework 응용 프로그램에 매우 쉽게 추가할 수 있습니다.
프로젝트 탭에는 Form1.cs가 굵게 표시됩니다. 이는 현재 열려 있는 문서입니다. 즉, 현재 폼의 코드 보기가 표시되어 있으므로 이벤트 처리기를 추가하려면 디자인 보기로 전환해야 합니다.
디자인 보기로 전환하려면
1. 다음 그림과 같이 프로젝트 창에서 Form1.cs [디자인] 탭을 클릭합니다.

Visual Studio 오른쪽 아래의 속성 창에서 이름, 색 및 글꼴 크기와 같은 이 폼의 여러 가지 특성을 변경할 수 있습니다. 그림 2는 속성 창을 보여 줍니다.
속성 단추 옆에 이벤트 단추가 있습니다. 이 단추는 현재 선택한 폼이나 컨트롤의 이벤트를 선택하는 데 사용됩니다.

그림 2. 속성 창
MouseDown 이벤트를 선택하려면
1. 속성 창에서 번개 모양을 클릭합니다.
2. 다음 그림과 같이 마우스 이벤트가 표시될 때까지 속성 창을 스크롤합니다.

이 단계를 실행하면 MouseDown 처리기가 응용 프로그램에 추가되고 코드 편집 창이 열립니다.
이제 MouseDown 처리기에 코드를 추가해야 합니다. 여기서도 CodeClip을 사용하면 편리합니다.
MouseDown 처리기에 코드를 추가하려면
1. CodeClip 도구를 시작합니다.
2. 다음 그림과 같이 MouseDown 항목을 선택합니다.

1. Copy(복사) 단추를 클릭합니다.
2. Visual Studio .NET으로 돌아옵니다.
3. 편집 | 붙여넣기 메뉴 명령을 클릭하여 텍스트를 붙여 넣습니다.
이 코드는 bMouseDown 부울을 true로 설정하고 현재 X 및 Y 위치를 저장하며 점을 배열에 추가합니다.
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
bMouseDown=true;
x=e.X;
y=e.Y;
arList.Add(new csPoint(x,y));
}
4. 프로젝트 창에서 Form1.cs [디자인] 탭을 클릭합니다.
5. MouseMove 이벤트를 찾아 두 번 클릭합니다.
6. CodeClip 배너를 클릭하여 CodeClip 대화 상자를 표시합니다.
7. MouseMove 항목을 선택한 다음 Copy(복사) 단추를 클릭합니다.
8. Visual Studio .NET으로 돌아옵니다.
9. 편집 | 붙여넣기 메뉴 명령을 클릭하여 텍스트를 붙여 넣습니다.
다음 MouseMove 이벤트 코드는 MouseDown 이벤트 코드보다 약간 더 복잡합니다. 먼저 마우스 클릭 여부를 확인합니다. 마우스 단추를 클릭하지 않은 상태에서도 MouseMove 알림은 표시됩니다. 마우스 단추를 클릭한 상태인 경우, Win32 프로그래밍의 DeviceContext와 비슷한 Graphics 개체를 만듭니다. 그런 다음 이전 점에서 새 점으로 선을 그립니다. 이 경우 선은 빨간색으로 그립니다. Win32에서 모든 색은 RGB(빨강, 녹색 및 파랑) 값으로 참조되므로 색을 쉽게 바꿀 수 있습니다.
private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (bMouseDown)
{
Graphics gr=this.CreateGraphics();
if (x == -1 && y == -1)
{
x=e.X;
y=e.Y;
}
gr.DrawLine(new Pen(Color.Red),e.X,e.Y,x,y);
x=e.X;
y=e.Y;
arList.Add(new csPoint(x,y));
}
}
MouseUp 처리기에 코드를 추가하려면
1. 프로젝트 창에서 Form1.cs [디자인] 탭을 클릭합니다.
2. MouseUp 이벤트를 찾아 두 번 클릭합니다.
3. CodeClip 배너를 클릭하여 CodeClip 대화 상자를 표시합니다.
4. MouseUp 항목을 선택한 다음 복사 단추를 클릭합니다.
5. Visual Studio .NET으로 돌아옵니다.
6. 편집 | 붙여넣기 메뉴 명령을 클릭하여 텍스트를 붙여 넣습니다.
MouseUp 처리기에서는 다음 코드와 같이 bMouseDown 부울을 false로 설정하여 현재 마우스를 클릭하지 않은 상태임을 나타내고 값이 -1인 점을 추가하여 선분을 끝냈음을 나타냅니다.
private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
bMouseDown=false;
arList.Add(new csPoint(-1,-1));
}
다음으로는 응용 프로그램을 빌드합니다.
응용 프로그램을 빌드하려면
1. 빌드 | Scribble 빌드를 클릭합니다.
경고나 오류 없이 응용 프로그램이 빌드되어야 합니다. 이제 응용 프로그램을 배포할 수 있습니다.
2. 디버그 | 디버깅하지 않고 시작을 클릭합니다. 디버깅은 이 문서 뒷부분에서 수행합니다.
3. 다음 그림과 같이 응용 프로그램을 배포할 수 있는 장치 목록이 있는 대화 상자가 나타나면
이 연습에서는 Windows CE .NET 에뮬레이터(기본값)을 선택합니다.

4. 배포를 클릭하면 응용 프로그램이 배포 및 시작됩니다.
5. 마우스를 움직여 보고 응용 프로그램에 잉크가 표시되지 않는 것을 확인하십시오.
응용 프로그램은 마우스 단추를 클릭할 때만 잉크를 표시합니다.
6. 왼쪽 마우스 단추를 클릭한 상태로 마우스를 움직인 다음 마우스 단추를 놓습니다.
응용 프로그램에서 그린 선이 다음 그림과 같이 나타납니다.

축하합니다! C#로 Scribble 응용 프로그램을 작성했습니다.
7. Scribble 응용 프로그램에서 파일 | 끝내기를 클릭합니다.
3부: C# Scribble 응용 프로그램 디버깅
지금까지 응용 프로그램을 빌드 및 실행해 보았습니다. 이제 새 응용 프로그램을 디버깅하는 방법을 알아보겠습니다. eMbedded Visual C++ 또는 Visual Studio .NET 2003을 통해 Windows CE용 응용 프로그램을 작성하는 경우 운영 체제 및 응용 프로그램은 개발 컴퓨터에 연결된 원격 장치에서 실행됩니다. 그러므로 디버깅하기 전에 장치에 응용 프로그램을 다운로드해야 합니다. 사용자 작업 면에서 볼 때 Windows CE 응용 프로그램 디버깅은 데스크톱 응용 프로그램 디버깅과 매우 비슷합니다.
이번 연습에서는 MouseDown 처리기에 중단점을 설정하고 응용 프로그램을 단계별로 실행하여 해당 흐름을 추적합니다.
MouseDown 처리기에 중단점을 설정하고 응용 프로그램을 단계별로 실행하려면
1. 다음 그림과 같이 Form1.cs 탭을 클릭하여 주 응용 프로그램 코드로 돌아갑니다.

2. Form1_MouseDown 함수를 찾습니다.
3. bMouseDown=true; 줄을 클릭하고 F9 키를 눌러 해당 줄에 중단점을 설정합니다.
그러면 다음 그림과 같이 bMouseDown=true; 줄 옆의 여백에 빨간색 중단점 기호가 표시됩니다.

4. 디버그 | 시작을 클릭하거나 F5 키를 누릅니다.
이 단계를 실행하면 필요한 경우 응용 프로그램이 빌드되며 에뮬레이터로 다운로드됩니다.
5. 응용 프로그램이 에뮬레이터에서 시작되고 나면 응용 프로그램 클라이언트 영역을 클릭합니다.
다음 그림과 같이 응용 프로그램은 bMouseDown=true; 줄에서 중단됩니다. 이제 코드 줄을 단계별로 실행할 수 있습니다.

응용 프로그램을 실행하는 동안 살펴볼 수 있는 다양한 항목이 있습니다. Visual Studio 응용 프로그램의 왼쪽 아래 창에는
검색 결과 또는 다른 항목이 표시될 수 있습니다. 이 창을 변경하여 현재 지역 변수가 표시되도록 할 수 있습니다.
6. 다음 그림과 같이 지역 변수 목록에서 this 항목을 확장합니다.

7. F11 키를 눌러 응용 프로그램을 단계별로 실행합니다.
코드를 단계별로 실행하면 X, Y 및 bMouseDown 값이 변경됩니다.
또한 새 ArrayList 항목을 추가하는 코드 줄에 도달하면 csPoint 클래스의 인스턴스를 "새로 추가"해야 합니다.
코드를 단계별로 실행하면 csPoint 클래스에 도달합니다.
8. F5 키를 눌러 응용 프로그램을 실행합니다.
9. 파일 | 끝내기를 클릭합니다.
요약
다음은 이 기사에서 제공된 연습의 요약입니다.
☆ Windows CE용 C# 스마트 장치 응용 프로그램을 만들었습니다.
☆ MouseMove, MouseDown 및 MouseUp 이벤트 지원을 폼에 추가했습니다.
☆ 사용자 지정 펜 만들기를 포함하여 그리기 지원을 추가했습니다.
☆ C# Scribble 응용 프로그램을 디버깅했습니다.
-------- 출처 : robiz 님의 네이버 블로그 "novice" : http://blog.naver.com/robiz?Redirect=Log&logNo=100012036698
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
- Microsoft .NET Framework란? by BlueFoxs2
- Microsoft® Windows® Software Development Kit for Windows Vista™ and .NET Framework 3.0 Runtime Compo by 심팍
- 나에게 돈을 줘 by 박하스디
- 프로그래밍/Microsoft SQL Server 2005 by 저공비행사
- [ASP.NET] .config 파일의 이해 by poco
# by | 2007/06/26 11:45 | ▶ include <C> | 트랙백 | 덧글(0)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]