Udostępnij za pośrednictwem


Klasa CUserToolsManager

Utrzymuje kolekcję obiektów klasy CUserTool w aplikacji. Narzędzie użytkownika to element menu, który uruchamia aplikację zewnętrzną. Obiekt CUserToolsManager umożliwia użytkownikowi lub deweloperowi dodawanie nowych narzędzi użytkownika do aplikacji. Obsługuje wykonywanie poleceń skojarzonych z narzędziami użytkownika, a także zapisuje informacje o narzędziach użytkownika w rejestrze systemu Windows.

Składnia

class CUserToolsManager : public CObject

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CUserToolsManager::CUserToolsManager Tworzy element CUserToolsManager.

Metody publiczne

Nazwa/nazwisko opis
CUserToolsManager::CreateNewTool Tworzy nowe narzędzie użytkownika.
CUserToolsManager::FindTool Zwraca wskaźnik do CMFCUserTool obiektu skojarzonego z określonym identyfikatorem polecenia.
CUserToolsManager::GetArgumentsMenuID Zwraca identyfikator zasobu skojarzony z menu Argumenty na karcie Narzędzia okna dialogowego Dostosowywanie .
CUserToolsManager::GetDefExt Zwraca domyślne rozszerzenie, którego używa okno dialogowe Otwieranie pliku ( CFileDialog) w polu Polecenie na karcie Narzędzia okna dialogowego Dostosowywanie .
CUserToolsManager::GetFilter Zwraca filtr pliku używany przez okno dialogowe Otwieranie pliku ( klasa CFileDialog) w polu Polecenie na karcie Narzędzia okna dialogowego Dostosowywanie .
CUserToolsManager::GetInitialDirMenuID Zwraca identyfikator zasobu skojarzony z menu Katalog początkowy na karcie Narzędzia okna dialogowego Dostosowywanie .
CUserToolsManager::GetMaxTools Zwraca maksymalną liczbę narzędzi użytkownika, które można przydzielić w aplikacji.
CUserToolsManager::GetToolsEntryCmd Zwraca identyfikator polecenia symbolu zastępczego elementu menu dla narzędzi użytkownika.
CUserToolsManager::GetUserTools Zwraca odwołanie do listy narzędzi użytkownika.
CUserToolsManager::InvokeTool Wykonuje aplikację skojarzona z narzędziem użytkownika, które ma określony identyfikator polecenia.
CUserToolsManager::IsUserToolCmd Określa, czy identyfikator polecenia jest skojarzony z narzędziem użytkownika.
CUserToolsManager::LoadState Ładuje informacje o narzędziach użytkownika z rejestru systemu Windows.
CUserToolsManager::MoveToolDown Przenosi określone narzędzie użytkownika w dół na liście narzędzi użytkownika.
CUserToolsManager::MoveToolUp Przenosi określone narzędzie użytkownika na liście narzędzi użytkownika.
CUserToolsManager::RemoveTool Usuwa określone narzędzie użytkownika z aplikacji.
CUserToolsManager::SaveState Przechowuje informacje o narzędziach użytkownika w rejestrze systemu Windows.
CUserToolsManager::SetDefExt Określa domyślne rozszerzenie, którego używa okno dialogowe Otwieranie pliku ( klasa CFileDialog) w polu Polecenie na karcie Narzędzia okna dialogowego Dostosowywanie .
CUserToolsManager::SetFilter Określa filtr pliku używany przez okno dialogowe Otwieranie pliku ( klasa CFileDialog) w polu Polecenie na karcie Narzędzia okna dialogowego Dostosowywanie .

Uwagi

Aby uwzględnić narzędzia użytkownika w aplikacji, musisz:

  1. Zarezerwuj element menu i skojarzony identyfikator polecenia dla wpisu menu narzędzia użytkownika.

  2. Zarezerwuj identyfikator polecenia sekwencyjnego dla każdego narzędzia użytkownika, które użytkownik może zdefiniować w aplikacji.

  3. Wywołaj metodę CWinAppEx::EnableUserTools i podaj następujące parametry: identyfikator polecenia menu, identyfikator polecenia pierwszego narzędzia użytkownika i identyfikator polecenia ostatniego narzędzia użytkownika.

Powinien istnieć tylko jeden obiekt globalny CUserToolsManager na aplikację.

Przykładowe narzędzia użytkownika można znaleźć w przykładowym projekcie VisualStudioDemo.

Przykład

W poniższym przykładzie pokazano, jak pobrać odwołanie do CUserToolsManager obiektu i jak utworzyć nowe narzędzia użytkownika. Ten fragment kodu jest częścią przykładu pokazowego programu 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"));
}

Hierarchia dziedziczenia

Obiekt CObject

CUserToolsManager

Wymagania

Nagłówek: afxusertoolsmanager.h

CUserToolsManager::CreateNewTool

Tworzy nowe narzędzie użytkownika.

CUserTool* CreateNewTool();

Wartość zwracana

Wskaźnik do nowo utworzonego narzędzia użytkownika lub wartość NULL, jeśli liczba narzędzi użytkownika przekroczyła wartość maksymalną. Zwracany typ jest taki sam jak typ przekazywany do CWinAppEx::EnableUserTools parametru pToolRTC .

Uwagi

Ta metoda znajduje pierwszy dostępny identyfikator polecenia menu w zakresie podanym w wywołaniu CWinAppEx::EnableUserTools i przypisuje narzędzie użytkownika tego identyfikatora.

Metoda kończy się niepowodzeniem, jeśli liczba narzędzi osiągnęła wartość maksymalną. Dzieje się tak, gdy wszystkie identyfikatory poleceń w zakresie są przypisywane do narzędzi użytkownika. Maksymalną liczbę narzędzi można pobrać, wywołując narzędzie CUserToolsManager::GetMaxTools. Dostęp do listy narzędzi można uzyskać, wywołując metodę CUserToolsManager::GetUserTools .

CUserToolsManager::CUserToolsManager

Tworzy element CUserToolsManager. Każda aplikacja musi mieć co najwyżej jednego menedżera narzędzi użytkownika.

CUserToolsManager();

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

Parametry

uiCmdToolsDummy
[in] Niepodpisane liczby całkowite używane przez platformę jako symbol zastępczy dla identyfikatora polecenia menu narzędzi użytkownika.

uiCmdFirst
[in] Identyfikator polecenia dla pierwszego polecenia narzędzia użytkownika.

uiCmdLast
[in] Identyfikator polecenia ostatniego polecenia narzędzia użytkownika.

pToolRTC
[in] Klasa, którą tworzy CUserToolsManager::CreateNewTool . Korzystając z tej klasy, można użyć pochodnego typu klasy CUserTool zamiast domyślnej implementacji.

uArgMenuID
[in] Identyfikator zasobu menu w menu podręcznym argumentów.

uInitDirMenuID
[in] Identyfikator zasobu menu w menu podręcznym katalogu początkowego.

Uwagi

Nie należy wywoływać tego konstruktora. Zamiast tego wywołaj metodę CWinAppEx::EnableUserTools, aby włączyć narzędzia użytkownika, i wywołaj metodę CWinAppEx::GetUserToolsManager, aby uzyskać wskaźnik do elementu CUserToolsManager. Aby uzyskać więcej informacji, zobacz Narzędzia zdefiniowane przez użytkownika.

CUserToolsManager::FindTool

Zwraca wskaźnik do obiektu klasy CUserTool skojarzonego z określonym identyfikatorem polecenia.

CUserTool* FindTool(UINT uiCmdId) const;

Parametry

uiCmdId
[in] Identyfikator polecenia menu.

Wartość zwracana

Wskaźnik do klasy CUserTool lub CUserTool-pochodnego obiektu w przypadku powodzenia; w przeciwnym razie wartość NULL.

Uwagi

Po FindTool pomyślnym zakończeniu zwracany typ jest taki sam jak typ parametru pToolRTC do CWinAppEx::EnableUserTools.

CUserToolsManager::GetArgumentsMenuID

Zwraca identyfikator zasobu skojarzony z menu Argumenty na karcie Narzędzia okna dialogowego Dostosowywanie .

UINT GetArgumentsMenuID() const;

Wartość zwracana

Identyfikator zasobu menu.

Uwagi

Parametr uArgMenuID CWinAppEx::EnableUserTools określa identyfikator zasobu.

CUserToolsManager::GetDefExt

Zwraca domyślne rozszerzenie, którego używa okno dialogowe Otwieranie pliku ( CFileDialog) w polu Polecenie na karcie Narzędzia okna dialogowego Dostosowywanie .

const CString& GetDefExt() const;

Wartość zwracana

Odwołanie do CString obiektu zawierającego rozszerzenie.

CUserToolsManager::GetFilter

Zwraca filtr pliku używany przez okno dialogowe Otwieranie pliku ( klasa CFileDialog) w polu Polecenie na karcie Narzędzia okna dialogowego Dostosowywanie .

const CString& GetFilter() const;

Wartość zwracana

Odwołanie do CString obiektu zawierającego filtr.

CUserToolsManager::GetInitialDirMenuID

Zwraca identyfikator zasobu skojarzony z menu Katalog początkowy na karcie Narzędzia okna dialogowego Dostosowywanie .

UINT GetInitialDirMenuID() const;

Wartość zwracana

Identyfikator zasobu menu.

Uwagi

Zwrócony identyfikator jest określony w parametrze uInitDirMenuID CWinAppEx::EnableUserTools.

CUserToolsManager::GetMaxTools

Zwraca maksymalną liczbę narzędzi użytkownika, które można przydzielić w aplikacji.

int GetMaxTools() const;

Wartość zwracana

Maksymalna liczba narzędzi użytkownika, które można przydzielić.

Uwagi

Wywołaj tę metodę, aby pobrać maksymalną liczbę narzędzi, które można przydzielić w aplikacji. Ta liczba jest liczbą identyfikatorów w zakresie od uiCmdFirst za pośrednictwem parametrów uiCmdLast przekazywanych do CWinAppEx::EnableUserTools.

CUserToolsManager::GetToolsEntryCmd

Zwraca identyfikator polecenia symbolu zastępczego elementu menu dla narzędzi użytkownika.

UINT GetToolsEntryCmd() const;

Wartość zwracana

Identyfikator polecenia symbolu zastępczego.

Uwagi

Aby włączyć narzędzia użytkownika, należy wywołać metodę CWinAppEx::EnableUserTools. UiCmdToolsDummy parametr określa identyfikator polecenia polecenia entry narzędzia. Ta metoda zwraca identyfikator polecenia wpisu narzędzi. Wszędzie tam, gdzie ten identyfikator jest używany w menu, jest zastępowany przez listę narzędzi użytkownika po wyświetleniu menu.

CUserToolsManager::GetUserTools

Zwraca odwołanie do listy narzędzi użytkownika.

const CObList& GetUserTools() const;

Wartość zwracana

Odwołanie const do obiektu klasy CObList, który zawiera listę narzędzi użytkownika.

Uwagi

Wywołaj tę metodę, aby pobrać listę narzędzi użytkownika, które obsługuje obiekt CUserToolsManager . Każde narzędzie użytkownika jest reprezentowane przez obiekt typu CUserTool Class lub typ pochodzący z CUserToolklasy . Typ jest określany przez parametr pToolRTC podczas wywoływania CWinAppEx ::EnableUserTools w celu włączenia narzędzi użytkownika.

CUserToolsManager::InvokeTool

Wykonuje aplikację skojarzona z narzędziem użytkownika, które ma określony identyfikator polecenia.

BOOL InvokeTool(UINT uiCmdId);

Parametry

uiCmdId
[in] Identyfikator polecenia menu skojarzony z narzędziem użytkownika.

Wartość zwracana

Nonzero, jeśli polecenie skojarzone z narzędziem użytkownika zostało wykonane pomyślnie; w przeciwnym razie 0.

Uwagi

Wywołaj tę metodę, aby wykonać aplikację skojarzona z narzędziem użytkownika, która ma identyfikator polecenia określony przez uiCmdId.

CUserToolsManager::IsUserToolCmd

Określa, czy identyfikator polecenia jest skojarzony z narzędziem użytkownika.

BOOL IsUserToolCmd(UINT uiCmdId) const;

Parametry

uiCmdId
[in] Identyfikator polecenia elementu menu.

Wartość zwracana

Nonzero, jeśli dany identyfikator polecenia jest skojarzony z narzędziem użytkownika; w przeciwnym razie 0.

Uwagi

Ta metoda sprawdza, czy dany identyfikator polecenia znajduje się w zakresie identyfikatorów poleceń. Zakres określa się podczas wywoływania CWinAppEx ::EnableUserTools w celu włączenia narzędzi użytkownika.

CUserToolsManager::LoadState

Ładuje informacje o narzędziach użytkownika z rejestru systemu Windows.

BOOL LoadState(LPCTSTR lpszProfileName=NULL);

Parametry

lpszProfileName
[in] Ścieżka klucza rejestru systemu Windows.

Wartość zwracana

Nonzero, jeśli stan został załadowany pomyślnie; w przeciwnym razie 0.

Uwagi

Ta metoda ładuje stan CUserToolsManager obiektu z rejestru systemu Windows.

Zazwyczaj ta metoda nie jest wywoływana bezpośrednio. CWinAppEx::LoadState wywołuje go w ramach procesu inicjowania obszaru roboczego.

CUserToolsManager::MoveToolDown

Przenosi określone narzędzie użytkownika w dół na liście narzędzi użytkownika.

BOOL MoveToolDown(CUserTool* pTool);

Parametry

Narzędzie pTool
[in] Określa narzędzie użytkownika do przeniesienia.

Wartość zwracana

Nonzero, jeśli narzędzie użytkownika zostało pomyślnie przeniesione w dół; w przeciwnym razie 0.

Uwagi

Metoda kończy się niepowodzeniem, jeśli narzędzie określone przez narzędzie pTool nie znajduje się na liście wewnętrznej lub jeśli narzędzie jest ostatnie na liście.

CUserToolsManager::MoveToolUp

Przenosi określone narzędzie użytkownika na liście narzędzi użytkownika.

BOOL MoveToolUp(CUserTool* pTool);

Parametry

Narzędzie pTool
[in] Określa narzędzie użytkownika do przeniesienia.

Wartość zwracana

Nonzero, jeśli narzędzie użytkownika zostało pomyślnie przeniesione w górę; w przeciwnym razie 0.

Uwagi

Metoda kończy się niepowodzeniem, jeśli narzędzie określone przez parametr pTool nie znajduje się na liście wewnętrznej lub jeśli narzędzie jest pierwszym elementem narzędzia na liście.

CUserToolsManager::RemoveTool

Usuwa określone narzędzie użytkownika z aplikacji.

BOOL RemoveTool(CUserTool* pTool);

Parametry

Narzędzie pTool
[in, out] Wskaźnik do narzędzia użytkownika do usunięcia.

Wartość zwracana

Wartość TRUE, jeśli narzędzie zostało pomyślnie usunięte. W przeciwnym razie zwraca wartość FALSE.

Uwagi

Jeśli narzędzie zostanie pomyślnie usunięte, ta metoda usunie narzędzie pTool.

CUserToolsManager::SaveState

Przechowuje informacje o narzędziach użytkownika w rejestrze systemu Windows.

BOOL SaveState(LPCTSTR lpszProfileName=NULL);

Parametry

lpszProfileName
[in] Ścieżka do klucza rejestru systemu Windows.

Wartość zwracana

Nonzero, jeśli stan został zapisany pomyślnie; w przeciwnym razie 0.

Uwagi

Metoda przechowuje bieżący stan CUserToolsManager obiektu w rejestrze systemu Windows.

Zazwyczaj nie trzeba wywoływać tej metody bezpośrednio, CWinAppEx::SaveState wywołuje ją automatycznie w ramach procesu serializacji obszaru roboczego aplikacji.

CUserToolsManager::SetDefExt

Określa domyślne rozszerzenie, którego używa okno dialogowe Otwieranie pliku ( klasa CFileDialog) w polu Polecenie na karcie Narzędzia okna dialogowego Dostosowywanie .

void SetDefExt(const CString& strDefExt);

Parametry

strDefExt
[in] Ciąg tekstowy zawierający domyślne rozszerzenie nazwy pliku.

Uwagi

Wywołaj tę metodę, aby określić domyślne rozszerzenie nazwy pliku w oknie dialogowym Otwieranie pliku, które jest wyświetlane, gdy użytkownik wybierze aplikację do skojarzenia z narzędziem użytkownika. Wartość domyślna to "exe".

CUserToolsManager::SetFilter

Określa filtr pliku używany przez okno dialogowe Otwieranie pliku ( klasa CFileDialog) w polu Polecenie na karcie Narzędzia okna dialogowego Dostosowywanie .

void SetFilter(const CString& strFilter);

Parametry

strFilter
[in] Określa filtr.

Zobacz też

Wykres hierarchii
Klasy
Klasa CWinAppEx
Klasa CUserTool