다음을 통해 공유


CUserToolsManager 클래스

애플리케이션에서 CUserTool 클래스 개체의 컬렉션을 유지 관리합니다. 사용자 도구는 외부 애플리케이션을 실행하는 메뉴 항목입니다. CUserToolsManager 개체를 사용하면 사용자 또는 개발자가 응용 프로그램에 새 사용자 도구를 추가할 수 있습니다. 사용자 도구와 연결된 명령 실행을 지원하고 사용자 도구에 관한 정보를 Windows 레지스트리를 저장합니다.

구문

class CUserToolsManager : public CObject

멤버

공용 생성자

속성 설명
CUserToolsManager::CUserToolsManager CUserToolsManager를 생성합니다.

공용 메서드

이름 설명
CUserToolsManager::CreateNewTool 새 사용자 도구를 만듭니다.
CUserToolsManager::FindTool 지정된 명령 ID와 연결된 개체에 대한 포인터 CMFCUserTool 를 반환합니다.
CUserToolsManager::GetArgumentsMenuID 사용자 지정 대화 상자의 도구 탭에서 인수 메뉴와 연결된 리소스 ID를 반환합니다.
CUserToolsManager::GetDefExt [사용자 지정] 대화 상자의 [도구] 탭에 있는 [명령] 필드에서 [파일 열기] 대화 상자(CFileDialog)에서 사용하는 기본 확장명을 반환합니다.
CUserToolsManager::GetFilter [사용자 지정] 대화 상자의 [도구] 탭에 있는 [명령] 필드에서 [파일 열기] 대화 상자(CFileDialog 클래스)에서 사용하는 파일 필터를 반환합니다.
CUserToolsManager::GetInitialDirMenuID 사용자 지정 대화 상자의 도구 탭에서 초기 디렉터리 메뉴와 연결된 리소스 ID를 반환합니다.
CUserToolsManager::GetMaxTools 애플리케이션에서 할당할 수 있는 최대 사용자 도구 수를 반환합니다.
CUserToolsManager::GetToolsEntryCmd 사용자 도구에 대한 메뉴 항목 자리 표시자의 명령 ID를 반환합니다.
CUserToolsManager::GetUserTools 사용자 도구 목록에 대한 참조를 반환합니다.
CUserToolsManager::InvokeTool 지정된 명령 ID가 있는 사용자 도구와 연결된 애플리케이션을 실행합니다.
CUserToolsManager::IsUserToolCmd 명령 ID가 사용자 도구와 연결되어 있는지 여부를 확인합니다.
CUserToolsManager::LoadState Windows 레지스트리에서 사용자 도구에 대한 정보를 로드합니다.
CUserToolsManager::MoveToolDown 사용자 도구 목록에서 지정된 사용자 도구를 아래로 이동합니다.
CUserToolsManager::MoveToolUp 사용자 도구 목록에서 지정된 사용자 도구를 위로 이동합니다.
CUserToolsManager::RemoveTool 애플리케이션에서 지정된 사용자 도구를 제거합니다.
CUserToolsManager::SaveState Windows 레지스트리에 사용자 도구에 대한 정보를 저장합니다.
CUserToolsManager::SetDefExt [사용자 지정] 대화 상자의 [도구] 탭에 있는 [명령] 필드에서 [파일 열기] 대화 상자(CFileDialog 클래스)에서 사용하는 기본 확장명을 지정합니다.
CUserToolsManager::SetFilter [사용자 지정] 대화 상자의 [도구] 탭에 있는 [명령] 필드에서 [파일 열기] 대화 상자(CFileDialog 클래스)에서 사용하는 파일 필터를 지정합니다.

설명

애플리케이션에 사용자 도구를 통합하려면 다음을 수행해야 합니다.

  1. 사용자 도구 메뉴 항목에 대한 메뉴 항목 및 연결된 명령 ID를 예약합니다.

  2. 사용자가 애플리케이션에서 정의할 수 있는 각 사용자 도구에 대해 순차적 명령 ID를 예약합니다.

  3. CWinAppEx::EnableUserTools 메서드를 호출하고 메뉴 명령 ID, 첫 번째 사용자 도구 명령 ID 및 마지막 사용자 도구 명령 ID 매개 변수를 제공합니다.

애플리케이션당 하나의 전역 CUserToolsManager 개체만 있어야 합니다.

사용자 도구의 예제는 VisualStudioDemo 샘플 프로젝트를 참조하세요.

예시

다음 예제에서는 개체에 대한 참조를 검색하는 CUserToolsManager 방법과 새 사용자 도구를 만드는 방법을 보여 줍니다. 이 코드 조각은 Visual Studio 데모 샘플일부입니다.

CUserToolsManager* pUserToolsManager = theApp.GetUserToolsManager();
if (pUserToolsManager != NULL && pUserToolsManager->GetUserTools().IsEmpty())
{
   // CUserToolsManager* pUserToolsManager
   CUserTool* pTool1 = pUserToolsManager->CreateNewTool();
   pTool1->m_strLabel = _T("&Notepad");
   pTool1->SetCommand(_T("notepad.exe"));

   CUserTool* pTool2 = pUserToolsManager->CreateNewTool();
   pTool2->m_strLabel = _T("Paint &Brush");
   pTool2->SetCommand(_T("mspaint.exe"));

   CUserTool* pTool3 = pUserToolsManager->CreateNewTool();
   pTool3->m_strLabel = _T("&Windows Explorer");
   pTool3->SetCommand(_T("explorer.exe"));

   CUserTool* pTool4 = pUserToolsManager->CreateNewTool();
   pTool4->m_strLabel = _T("Microsoft On-&Line");
   pTool4->SetCommand(_T("http://www.microsoft.com"));
}

상속 계층 구조

CObject

CUserToolsManager

요구 사항

헤더: afxusertoolsmanager.h

CUserToolsManager::CreateNewTool

새 사용자 도구를 만듭니다.

CUserTool* CreateNewTool();

Return Value

새로 만든 사용자 도구에 대한 포인터이거나, 사용자 도구 수가 최대값을 초과하면 NULL입니다. 반환된 형식은 pToolRTC 매개 변수로 전달되는 CWinAppEx::EnableUserTools 형식과 동일합니다.

설명

이 메서드는 CWinAppEx::EnableUserTools 호출에서 제공된 범위에서 사용 가능한 첫 번째 메뉴 명령 ID를 찾고 이 ID를 사용자 도구에 할당합니다.

도구 수가 최대값에 도달하면 메서드가 실패합니다. 이 문제는 범위 내의 모든 명령 ID가 사용자 도구에 할당될 때 발생합니다. CUserToolsManager::GetMaxTools를 호출 하여 최대 도구 수를 검색할 수 있습니다. CUserToolsManager::GetUserTools 메서드를 호출 하여 도구 목록에 액세스할 수 있습니다 .

CUserToolsManager::CUserToolsManager

CUserToolsManager를 생성합니다. 각 애플리케이션에는 최대 하나의 사용자 도구 관리자가 있어야 합니다.

CUserToolsManager();

CUserToolsManager(
    const UINT uiCmdToolsDummy,
    const UINT uiCmdFirst,
    const UINT uiCmdLast,
    CRuntimeClass* pToolRTC=RUNTIME_CLASS(CUserTool),
    UINT uArgMenuID=0,
    UINT uInitDirMenuID=0);

매개 변수

uiCmdToolsDummy
[in] 프레임워크에서 사용자 도구 메뉴의 명령 ID에 대한 자리 표시자로 사용하는 부호 없는 정수입니다.

uiCmdFirst
[in] 첫 번째 사용자 도구 명령에 대한 명령 ID입니다.

uiCmdLast
[in] 마지막 사용자 도구 명령에 대한 명령 ID입니다.

pToolRTC
[in] CUserToolsManager::CreateNewTool에서 만드는 클래스입니다. 이 클래스를 사용하면 기본 구현 대신 파생 형식의 CUserTool 클래스 를 사용할 수 있습니다.

uArgMenuID
[in] 인수 팝업 메뉴의 메뉴 리소스 ID입니다.

uInitDirMenuID
[in] 초기 디렉터리 팝업 메뉴의 메뉴 리소스 ID입니다.

설명

이 생성자를 호출하지 마세요. 대신 CWinAppEx::EnableUserTools를 호출하여 사용자 도구를 사용하도록 설정하고 CWinAppEx::GetUserToolsManager를 호출하여 포인터를 CUserToolsManager 가져옵니다. 자세한 내용은 사용자 정의 도구를 참조 하세요.

CUserToolsManager::FindTool

지정된 명령 ID와 연결된 CUserTool 클래스 개체에 대한 포인터를 반환합니다.

CUserTool* FindTool(UINT uiCmdId) const;

매개 변수

uiCmdId
[in] 메뉴 명령 식별자입니다.

Return Value

성공하면 CUserTool 클래스 또는 CUserTool-derived 개체에 대한 포인터이고, 그렇지 않으면 NULL입니다.

설명

성공하면 FindTool 반환된 형식은 CWinAppEx::EnableUserTools에 대한 pToolRTC 매개 변수의 형식과 동일합니다.

CUserToolsManager::GetArgumentsMenuID

사용자 지정 대화 상자의 도구 탭에서 인수 메뉴와 연결된 리소스 ID를 반환합니다.

UINT GetArgumentsMenuID() const;

Return Value

메뉴 리소스의 식별자입니다.

설명

CWinAppEx::EnableUserToolsuArgMenuID 매개 변수는 리소스의 ID를 지정합니다.

CUserToolsManager::GetDefExt

[사용자 지정] 대화 상자의 [도구] 탭에 있는 [명령] 필드에서 [파일 열기] 대화 상자(CFileDialog)에서 사용하는 기본 확장명을 반환합니다.

const CString& GetDefExt() const;

Return Value

확장이 포함된 개체에 CString 대한 참조입니다.

CUserToolsManager::GetFilter

[사용자 지정] 대화 상자의 [도구] 탭에 있는 [명령] 필드에서 [파일 열기] 대화 상자(CFileDialog 클래스)에서 사용하는 파일 필터를 반환합니다.

const CString& GetFilter() const;

Return Value

필터를 포함하는 개체에 CString 대한 참조입니다.

CUserToolsManager::GetInitialDirMenuID

사용자 지정 대화 상자의 도구 탭에서 초기 디렉터리 메뉴와 연결된 리소스 ID를 반환합니다.

UINT GetInitialDirMenuID() const;

Return Value

메뉴 리소스 식별자입니다.

설명

반환된 ID는 CWinAppEx::EnableUserTools의 uInitDirMenuID 매개 변수에 지정됩니다.

CUserToolsManager::GetMaxTools

애플리케이션에서 할당할 수 있는 최대 사용자 도구 수를 반환합니다.

int GetMaxTools() const;

Return Value

할당할 수 있는 사용자 도구의 최대 수입니다.

설명

이 메서드를 호출하여 애플리케이션에서 할당할 수 있는 최대 도구 수를 검색합니다. 이 숫자는 CWinAppEx::EnableUserTools에 전달하는 uiCmdLast 매개 변수를 통해 uiCmdFirst 범위의 ID 수입니다.

CUserToolsManager::GetToolsEntryCmd

사용자 도구에 대한 메뉴 항목 자리 표시자의 명령 ID를 반환합니다.

UINT GetToolsEntryCmd() const;

Return Value

자리 표시자의 명령 ID입니다.

설명

사용자 도구를 사용하도록 설정하려면 CWinAppEx::EnableUserTools를 호출 합니다. uiCmdToolsDummy 매개 변수는 도구 항목 명령의 명령 ID를 지정합니다. 이 메서드는 도구 항목 명령 ID를 반환합니다. 해당 ID가 메뉴에서 사용되는 경우 메뉴가 표시될 때 사용자 도구 목록으로 바뀝니다.

CUserToolsManager::GetUserTools

사용자 도구 목록에 대한 참조를 반환합니다.

const CObList& GetUserTools() const;

Return Value

사용자 도구 목록을 포함하는 CObList 클래스 개체에 대한 const 참조입니다.

설명

이 메서드를 호출하여 CUserToolsManager 개체가 기본 사용자 도구 목록을 검색합니다. 각 사용자 도구는 CUserTool 클래스 형식의 개체 또는 에서 파생된 CUserTool형식으로 표시됩니다. CWinAppEx::EnableUserTools를 호출하여 사용자 도구를 사용하도록 설정할 때 pToolRTC 매개 변수에 의해 형식이 지정됩니다.

CUserToolsManager::InvokeTool

지정된 명령 ID가 있는 사용자 도구와 연결된 애플리케이션을 실행합니다.

BOOL InvokeTool(UINT uiCmdId);

매개 변수

uiCmdId
[in] 사용자 도구와 연결된 메뉴 명령 ID입니다.

Return Value

사용자 도구와 연결된 명령이 성공적으로 실행된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

uiCmdId로 지정된 명령 ID가 있는 사용자 도구와 연결된 애플리케이션을 실행하려면 이 메서드를 호출합니다.

CUserToolsManager::IsUserToolCmd

명령 ID가 사용자 도구와 연결되어 있는지 여부를 확인합니다.

BOOL IsUserToolCmd(UINT uiCmdId) const;

매개 변수

uiCmdId
[in] 메뉴 항목의 명령 ID입니다.

Return Value

지정된 명령 ID가 사용자 도구와 연결된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 메서드는 지정된 명령 ID가 명령 ID 범위에 있는지 여부를 검사. CWinAppEx::EnableUserTools를 호출 하여 사용자 도구를 사용하도록 설정할 때 범위를 지정합니다 .

CUserToolsManager::LoadState

Windows 레지스트리에서 사용자 도구에 대한 정보를 로드합니다.

BOOL LoadState(LPCTSTR lpszProfileName=NULL);

매개 변수

lpszProfileName
[in] Windows 레지스트리 키의 경로입니다.

Return Value

상태가 성공적으로 로드된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 메서드는 Windows 레지스트리에서 개체의 CUserToolsManager 상태를 로드합니다.

일반적으로 이 메서드를 직접 호출하지는 않습니다. CWinAppEx::LoadState 는 이를 작업 영역 초기화 프로세스의 일부로 호출합니다.

CUserToolsManager::MoveToolDown

사용자 도구 목록에서 지정된 사용자 도구를 아래로 이동합니다.

BOOL MoveToolDown(CUserTool* pTool);

매개 변수

pTool
[in] 이동할 사용자 도구를 지정합니다.

Return Value

사용자 도구가 성공적으로 아래로 이동된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

pTool에서 지정하는 도구가 내부 목록에 없거나 도구가 목록에 마지막이면 메서드가 실패합니다.

CUserToolsManager::MoveToolUp

사용자 도구 목록에서 지정된 사용자 도구를 위로 이동합니다.

BOOL MoveToolUp(CUserTool* pTool);

매개 변수

pTool
[in] 이동할 사용자 도구를 지정합니다.

Return Value

사용자 도구가 성공적으로 위로 이동된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

pTool 매개 변수가 지정하는 도구가 내부 목록에 없거나 도구가 목록의 첫 번째 도구 항목인 경우 메서드가 실패합니다.

CUserToolsManager::RemoveTool

애플리케이션에서 지정된 사용자 도구를 제거합니다.

BOOL RemoveTool(CUserTool* pTool);

매개 변수

pTool
[in, out] 제거할 사용자 도구에 대한 포인터입니다.

Return Value

도구가 성공적으로 제거되면 TRUE입니다. 그렇지 않으면 FALSE입니다.

설명

도구가 성공적으로 제거되면 이 메서드는 pTool을 삭제합니다.

CUserToolsManager::SaveState

Windows 레지스트리에 사용자 도구에 대한 정보를 저장합니다.

BOOL SaveState(LPCTSTR lpszProfileName=NULL);

매개 변수

lpszProfileName
[in] Windows 레지스트리 키의 경로입니다.

Return Value

상태가 성공적으로 저장된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

이 메서드는 Windows 레지스트리에 개체의 CUserToolsManager 현재 상태를 저장합니다.

일반적으로 이 메서드를 직접 호출할 필요가 없습니다. CWinAppEx::SaveState 는 애플리케이션의 작업 영역 serialization 프로세스의 일부로 자동으로 호출합니다.

CUserToolsManager::SetDefExt

[사용자 지정] 대화 상자의 [도구] 탭에 있는 [명령] 필드에서 [파일 열기] 대화 상자(CFileDialog 클래스)에서 사용하는 기본 확장명을 지정합니다.

void SetDefExt(const CString& strDefExt);

매개 변수

strDefExt
[in] 기본 파일 이름 확장명을 포함하는 텍스트 문자열입니다.

설명

사용자가 사용자 도구와 연결할 애플리케이션을 선택할 때 표시되는 파일 열기 대화 상자에서 기본 파일 이름 확장명을 지정하려면 이 메서드를 호출합니다. 기본값은 "exe"입니다.

CUserToolsManager::SetFilter

[사용자 지정] 대화 상자의 [도구] 탭에 있는 [명령] 필드에서 [파일 열기] 대화 상자(CFileDialog 클래스)에서 사용하는 파일 필터를 지정합니다.

void SetFilter(const CString& strFilter);

매개 변수

strFilter
[in] 필터를 지정합니다.

참고 항목

계층 구조 차트
클래스
CWinAppEx 클래스
CUserTool 클래스