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:
Zarezerwuj element menu i skojarzony identyfikator polecenia dla wpisu menu narzędzia użytkownika.
Zarezerwuj identyfikator polecenia sekwencyjnego dla każdego narzędzia użytkownika, które użytkownik może zdefiniować w aplikacji.
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
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 CUserTool
klasy . 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.