BirthdayPicker 샘플: .NET Framework 리소스와 Windows Forms

업데이트: 2007년 11월

BirthdayPicker 샘플에서는 C++ 응용 프로그램에서 .NET Framework 리소스 메커니즘을 사용하는 방법을 보여 주며, 일반적인 Window Forms 구성 요소 중 일부의 사용 방법도 보여 줍니다.

보안 정보:

이 샘플 코드는 개념을 보여 주기 위해 제공되며 가장 안전한 코드 작성 방법을 제시하지 않을 수 있으므로 응용 프로그램이나 웹 사이트에서 사용할 수 없습니다. Microsoft는 샘플 코드를 원래 용도 이외의 다른 용도로 사용하는 경우 발생하는 부수적이나 파생적인 손해에 대해 책임을 지지 않습니다.

샘플 및 이를 설치하기 위한 지침을 가져오려면

  • Visual Studio의 도움말 메뉴에서 샘플을 클릭합니다.

    자세한 내용은 샘플 파일 찾기를 참조하십시오.

  • 최신 버전 및 전체 샘플 목록은 Visual Studio 2008 Samples 페이지에서 온라인으로 사용할 수 있습니다.

  • 컴퓨터의 하드 디스크에서도 샘플을 찾을 수 있습니다. 기본적으로 샘플과 추가 정보 파일은 \Program Files\Visual Studio 9.0\Samples\ 아래의 폴더에 복사됩니다. Visual Studio Express Edition의 경우에는 모든 샘플이 온라인에 있습니다.

샘플 빌드 및 실행

C++ 응용 프로그램에서는 .NET Framework 도구인 WinRes.exe를 사용하여 .NET Framework 리소스를 활용할 수 있습니다. 이 도구는 ".resx" 파일(Win32 C++ 응용 프로그램의 ".rc" 파일에 해당)을 만들기 위한 특수 도구입니다. Birthdaypicker.resx에는 imageList1 리소스와 이 리소스가 처리하는 비트맵의 컬렉션이 포함되어 있습니다. 결과로 만들어진 .resx 파일은 resgen.exe를 사용하여 birthdaypicker.resources 파일로 컴파일되고 이 리소스 파일은 응용 프로그램의 결과 어셈블리에 링크됩니다.

Visual Studio를 사용하여 BirthdayPicker 샘플을 빌드하고 실행하려면

  1. Visual Studio IDE에서 솔루션 파일인 BirthdayPicker.sln을 로드합니다.

  2. 솔루션 탐색기에서 BirthdayPicker 솔루션을 마우스 오른쪽 단추로 클릭합니다.

  3. 디버그 메뉴에서 시작을 클릭합니다.

    사용자 지정 빌드 단계에서 birthdaypicker.resx에 대해 resgen.exe를 실행하고 응용 프로그램의 리소스 파일을 생성합니다. 또한 링커 옵션 /assemblyresource는 결과로 만들어진 birthdaypicker.resources를 응용 프로그램에 링크합니다.

  4. 디버그 메뉴에서 시작을 클릭합니다.

샘플이 실행되면 두 개의 DateTimePicker 컨트롤이 표시됩니다. 첫 번째 컨트롤을 사용하여 사용자의 생일을 선택하고 두 번째 컨트롤을 선택하여 임의의 날짜(오늘 포함)를 선택합니다. 날짜 범위를 선택하면 링크된 트리 컨트롤은 해당 기간을 다양한 방식으로 해석하는 여러 노드로 확장됩니다. 예를 들어, dog year 또는 fruit fly generation에 해당하는 경과년 수 또는 경과일 수와 해당 기간 동안 있었던 보름달의 수 등을 계산할 수 있습니다.

클래스 및 키워드

이 샘플에서는 다음의 클래스를 보여 줍니다.

DateTimePicker, ImageList, ResourceManager, TreeView

이 샘플에서는 다음의 키워드를 보여 줍니다.

ResourceManager::GetObject, DateTimePicker::Format, TimeSpan, KeyPressEventHandler, ToolTip::SetToolTip, ContextMenu, TreeView::Nodes, TreeView::SelectedNode, TreeNode::GetNodeCount, TreeNode::Remove, TreeNodeCollection::Insert, TreeNodeCollection::Clear, String::Format, Panel, dynamic_cast

참고 항목

기타 리소스

일반 샘플