mfc progressbar 예제

Skrevs fredagen den 2 augusti, 2019

1. 메시지의 이름을 선택합니다. ”UWM_”과 같은 이름을 지정하여 ”사용자 WM_” 메시지를 나타내는 경향이 있습니다. 예를 들어 1. 메시지의 이름을 선택합니다. 유용한 이름을 선택한 다음 GUIDGEN을 사용하여 진정으로 고유한 ID를 접미사하는 것을 선호하지만 중요하지는 않습니다. 예를 들어, 이름으로 문자열을 정의하고 헤더 파일에 넣습니다. 3. MainFrm.cpp에 포함 파일을 추가하여 MainFrm.h를 포함합니다. 특정 클래스 중 하나를 사용하는 경우 원하는 클래스 앞에 ”StatusControl.h”를 포함해야 합니다. 상태 표시줄에 배경 스레드가 실행 중, 일시 중지, 종료됨 등을 나타내기 위해 아이콘 시퀀스를 표시해야 했습니다.

이 작업이 어떻게 수행되었는지 확인한 후 여러 텍스트 상태 창을 변경하여 아이콘을 사용하기로 결정했는데, 이는 C ++ 클래스가 있으면 더 쉬울 것이라는 것을 의미했습니다. 한 수업에서 이 일을 한 후, 나는 몇 가지 를 위해 그것을하기로 결정했다. zipfile에는 편집, 정적, 진행률 및 콤보 컨트롤을 위한 일반 CWnd 파생 클래스와 친구 클래스가 포함됩니다. 이러한 예제를 사용하여 사용자 고유의 컨트롤 클래스를 추가할 수 있습니다. 기본 CWnd 파생 클래스는 다음과 같습니다. 다음 코드 예제에서는 프로그래밍 방식으로 진행률 표시줄 컨트롤에 액세스하는 데 사용되는 변수 m_progressCtrl을 정의합니다. 이 변수는 다음 예제에서 사용됩니다. 안타깝게도 ClassWizard가 아무런 도움을 주지 않기 때문에 이것은 약간 고통스럽습니다.

ClassWizard를 사용하여 CStatusBar의 하위 클래스인 클래스를 만들 수 있습니다.예를 들어, i 호출 광산 CActiveStatusBar (활성 컨트롤이 있는 상태 표시줄에 대 한). 그런 다음 헤더 파일로 가서 AFX_VIRTUAL 섹션에 표시된 줄을 수동으로 추가했습니다. 나는 (10 년 전) 만든이 하나를 사용하고 아무도 이것과 같은 것을 게시한 적이 없다는 것을 발견했습니다. 이것은 물론 모든 Windows 운영 체제와 호환됩니다. 원래 Visual C++ 6.0으로 컴파일되었지만 모든 Visual Studio 환경에서 작동해야 합니다. 3. 기호를 사용하는 각 모듈 (MainFrm.cpp 포함)에서 메시지를 등록하십시오 : 위의 응용 프로그램은 visual studio 2013.Above 샘플 응용 프로그램을 사용하여 개발되었으며 파일 처리 상태는 위의 진행률 표시 줄 대화 상자와 함께 표시됩니다. 3. CMainFrame의 메시지 맵에서 각 메시지에 대한 줄을 추가합니다: 이 함수는 nLower 및 nUpper에서 참조하는 정수에 하한 및 상한값을 각각 복사합니다. 일반적으로 긴 작업의 상태를 표시하는 진행률 표시줄을 표시하고 있습니다.

GUI 응용 프로그램에서는 UI 스레드를 응답할 수 있도록 별도의 스레드에서 긴 작업을 수행합니다. 그것은 기여 한 기술 (”상태 표시 줄 창에 진행률 표시 줄 표시”) 및 수정을 기반으로합니다. 이 구현은 합리적으로 깨끗한 인터페이스를 사용하여 관련 MFC 클래스집합으로 수행됩니다. 또한 GetItemRect 메서드가 이 경우 빈 사각형을 반환하기 때문에 포함 프레임에 의해 잘린 창에 대한 컨트롤을 만들려고 시도하는 것이 상태 표시줄의 왼쪽에 컨트롤을 만드는 원래 코드의 오류를 수정합니다. . 2. MainFrm.cpp에서 이름이 ”표시기”인 표시기 배열을 찾아 상태 표시 줄에 표시하려는 위치에 있는 배열에 새 ID를 추가합니다. ID_SEPARATOR 줄을 따라야 합니다. PBS_SMOOTH 진행률 표시줄 컨트롤에서 점진적, 원활한 충진을 표시합니다. 이 플래그가 없으면 컨트롤이 블록으로 채워집니다. 5. 창을 만들려면 필요에 따라 ”요청 시” 창을 만들거나 ”InitInstance” 처리기 중에 창을 만들 수 있습니다.

필요에 따라 만들면 일반적으로 필요하지 않을 때 삭제됩니다. 진행률 표시줄 컨트롤의 최소 및 최대 범위를 설정하고 새 범위를 반영하도록 막대를 다시 그립니다. 최신 클래스 설명서에 대 한 헤더 파일을 참조 하십시오. 매개 변수의 대부분은 자체 설명, 그렇지 않으면 코멘트는 도움이 옆에 배치됩니다. 이제 SetPosition, SetRange, Step(등)과 같은 작업 함수를 사용할 수 있습니다.

Teater Kapija
Örmölla 321
SE-274 56 Abbekås

+46 (0)411 533 772
+46 (0)70 740 17 61

info@kapija.com
www.kapija.com