IDE 아래쪽에 있는 Visual Studio 상태 표시줄을 사용하여 정보를 표시할 수 있습니다.
상태 표시줄을 확장하면 피드백 영역, 진행률 표시줄, 애니메이션 영역 및 디자이너 영역의 네 가지 지역에 정보 및 UI를 표시할 수 있습니다. 피드백 영역을 사용하면 텍스트를 표시하고 표시된 텍스트를 강조 표시할 수 있습니다. 진행률 표시줄에는 파일 저장과 같은 짧은 실행 작업에 대한 증분 진행률이 표시됩니다. 애니메이션 영역에는 솔루션에서 여러 프로젝트를 빌드하는 것과 같이 결정되지 않은 길이의 장기 실행 작업 또는 작업에 대한 연속 루프 애니메이션이 표시됩니다. 디자이너 영역에는 커서 위치의 줄과 열 번호가 표시됩니다.
IVsStatusbar 서비스에서 SVsStatusbar 인터페이스를 사용하여 상태 표시줄을 가져올 수 있습니다. 또한 창 프레임에 배치된 모든 개체는 IVsStatusbarUser 인터페이스를 구현함으로써 상태 표시줄 클라이언트 개체로 등록될 수 있습니다. 창이 활성화될 때마다 Visual Studio는 그 창에 있는 개체에 대해 IVsStatusbarUser 인터페이스를 요청합니다. 발견된 경우 반환된 인터페이스에서 SetInfo 메서드를 호출하고 개체는 해당 메서드 내에서 상태 표시줄을 업데이트할 수 있습니다. 예를 들어 문서 창은 이 메서드를 SetInfo 사용하여 활성화될 때 디자이너 지역의 정보를 업데이트할 수 있습니다.
다음 절차에서는 VSIX 프로젝트를 만들고 사용자 지정 메뉴 명령을 추가하는 방법을 이해한다고 가정합니다. 자세한 내용은 메뉴 명령을 사용하여 확장 만들기를 참조하세요.
상태 표시줄 수정
이 절차에서는 상태 표시줄의 피드백 영역에서 텍스트를 설정 및 가져와 정적 텍스트를 표시하고 표시된 텍스트를 강조 표시하는 방법을 보여 줍니다.
상태 표시줄 읽기 및 쓰기
TestStatusBarExtension이라는 VSIX 프로젝트를 만들고 TestStatusBarCommand라는 메뉴 명령을 추가합니다.
TestStatusBarCommand.cs 명령 처리기 메서드 코드()를
MenuItemCallback다음으로 바꿉니다.private void MenuItemCallback(object sender, EventArgs e) { IVsStatusbar statusBar = (IVsStatusbar)ServiceProvider.GetService(typeof(SVsStatusbar)); // Make sure the status bar is not frozen int frozen; statusBar.IsFrozen(out frozen); if (frozen != 0) { statusBar.FreezeOutput(0); } // Set the status bar text and make its display static. statusBar.SetText("We just wrote to the status bar."); // Freeze the status bar. statusBar.FreezeOutput(1); // Get the status bar text. string text; statusBar.GetText(out text); System.Windows.Forms.MessageBox.Show(text); // Clear the status bar text. statusBar.FreezeOutput(0); statusBar.Clear(); }코드를 컴파일하고 디버깅을 시작합니다.
Visual Studio의 실험적 인스턴스에서 도구 메뉴를 엽니다. TestStatusBarCommand 호출 단추를 선택합니다.
이제 상태 표시줄의 텍스트에 방금 상태 표시줄에 쓴 내용이 표시되고 표시되는 메시지 상자는 동일한 텍스트를 사용합니다.
진행률 표시줄 업데이트
다음 절차에서는 진행률 표시줄을 초기화하고 업데이트하는 방법을 보여줍니다.
TestStatusBarCommand.cs 파일을 열고 메서드를
MenuItemCallback다음 코드로 바꿉다.private void MenuItemCallback(object sender, EventArgs e) { IVsStatusbar statusBar = (IVsStatusbar)ServiceProvider.GetService(typeof(SVsStatusbar)); uint cookie = 0; string label = "Writing to the progress bar"; // Initialize the progress bar. statusBar.Progress(ref cookie, 1, "", 0, 0); for (uint i = 0, total = 20; i <= total; i++) { // Display progress every second. statusBar.Progress(ref cookie, 1, label, i, total); System.Threading.Thread.Sleep(1000); } // Clear the progress bar. statusBar.Progress(ref cookie, 0, "", 0, 0); }코드를 컴파일하고 디버깅을 시작합니다.
Visual Studio의 실험적 인스턴스에서 도구 메뉴를 엽니다. TestStatusBarCommand 호출 단추를 선택합니다.
이제 상태 표시줄의 텍스트에 진행률 표시줄에 쓰기가 표시됩니다. 진행률 표시줄이 20초마다 업데이트되고 상태 및 진행률 표시줄이 지워집니다.
애니메이션 표시
상태 표시줄에는 장기 실행 작업(예: 솔루션에서 여러 프로젝트 빌드)을 나타내는 반복 애니메이션이 표시됩니다. 이 애니메이션이 표시되지 않으면 올바른 도구> 옵션 설정이 있는지 확인합니다.
도구>옵션 창을 열고 모든 설정>환경>시각적 환경>효과 섹션을 확장합니다.
리치 클라이언트 시각적 환경 사용에서 자동(권장되는 경우에만 사용)을 선택합니다.
도구>옵션 대화 상자를 열고 환경>일반 섹션을 확장합니다.
클라이언트 성능에 따라 시각적 환경 자동 조정 확인란의 선택을 취소합니다.
리치 클라이언트 시각적 환경 하위 기능 사용 확인란을 선택합니다.
확인을 선택합니다.
이제 Visual Studio의 실험적 인스턴스에서 프로젝트를 빌드할 때 애니메이션이 표시됩니다.
이 절차에서는 프로젝트 또는 솔루션 빌드를 나타내는 표준 Visual Studio 애니메이션을 표시하는 방법을 보여 줍니다.
TestStatusBarCommand.cs 파일을 열고 메서드를
MenuItemCallback다음 코드로 바꿉다.private void MenuItemCallback(object sender, EventArgs e) { IVsStatusbar statusBar =(IVsStatusbar)ServiceProvider.GetService(typeof(SVsStatusbar)); // Use the standard Visual Studio icon for building. object icon = (short)Microsoft.VisualStudio.Shell.Interop.Constants.SBAI_Build; // Display the icon in the Animation region. statusBar.Animation(1, ref icon); // The message box pauses execution for you to look at the animation. System.Windows.Forms.MessageBox.Show("showing?"); // Stop the animation. statusBar.Animation(0, ref icon); }코드를 컴파일하고 디버깅을 시작합니다.
Visual Studio의 실험적 인스턴스에서 도구 메뉴를 열고 TestStatusBarCommand 호출 단추를 선택합니다.
메시지 상자가 표시되면 맨 오른쪽의 상태 표시줄에도 애니메이션이 표시됩니다. 메시지 상자를 해제하면 애니메이션이 사라집니다.