Класс CMouseManager
Позволяет пользователю связывать различные команды с определенным объектом CView , когда пользователь дважды щелкает внутри этого представления.
Синтаксис
class CMouseManager : public CObject
Участники
Открытые методы
Имя | Описание |
---|---|
CMouseManager::AddView | Добавляет объект в диалоговое CView окно "Настройка ". Диалоговое окно настройки позволяет пользователю связать двойной щелчок с командой для каждого из перечисленных представлений. |
CMouseManager::GetViewDblClickCommand | Возвращает команду, выполняемую при двойном щелчке пользователя в предоставленном представлении. |
CMouseManager::GetViewIconId | Возвращает значок, связанный с предоставленным идентификатором представления. |
CMouseManager::GetViewIdByName | Возвращает идентификатор представления, связанный с указанным именем представления. |
CMouseManager::GetViewNames | Извлекает список всех добавленных имен представлений. |
CMouseManager::LoadState | CMouseManager Загружает состояние из реестра Windows. |
CMouseManager::SaveState | Записывает состояние в CMouseManager реестр Windows. |
CMouseManager::SetCommandForDblClk | Связывает указанную команду и предоставленное представление. |
Замечания
Класс CMouseManager
поддерживает коллекцию CView
объектов. Каждое представление определяется по имени и идентификатору. Эти представления отображаются в диалоговом окне настройки . Пользователь может изменить команду, связанную с любым представлением, с помощью диалогового окна настройки . Связанная команда выполняется, когда пользователь дважды щелкает в этом представлении. Для поддержки этого кода необходимо обработать сообщение WM_LBUTTONDBLCLK и вызвать функцию CWinAppEx::OnViewDoubleClick в коде для этого CView
объекта.
Не следует создавать CMouseManager
объект вручную. Он будет создан платформой приложения. Он также будет уничтожен автоматически при выходе пользователя из приложения. Чтобы получить указатель на диспетчер мыши для приложения, вызовите CWinAppEx::GetMouseManager.
Иерархия наследования
CMouseManager
Требования
Заголовок: afxmousemanager.h
CMouseManager::AddView
Регистрирует объект CView в классе CMouseManager для поддержки пользовательского поведения мыши.
BOOL AddView(
int iViewId,
UINT uiViewNameResId,
UINT uiIconId = 0);
BOOL AddView(
int iId,
LPCTSTR lpszViewName,
UINT uiIconId = 0);
Параметры
iViewId
[in] Идентификатор представления.
uiViewNameResId
[in] Идентификатор строки ресурса, ссылающийся на имя представления.
uiIconId
[in] Идентификатор значка представления.
iId
[in] Идентификатор представления.
lpszViewName
[in] Имя представления.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Для поддержки пользовательского поведения мыши представление должно быть зарегистрировано в объекте CMouseManager
. Любой объект, производный CView
от класса, можно зарегистрировать в диспетчере мыши. Строка и значок, связанные с представлением, отображаются на вкладке "Мышь " диалогового окна "Настройка ".
Это ответственность программиста на создание и обслуживание идентификаторов представлений, таких как iViewId и iId.
Дополнительные сведения о том, как обеспечить пользовательское поведение мыши, см. в разделе "Настройка клавиатуры и мыши".
Пример
В следующем примере показано, как получить указатель на CMouseManager
объект с помощью CWinAppEx::GetMouseManager
метода и AddView
метода в CMouseManager
классе. Этот фрагмент кода является частью примера коллекции состояний.
GetMouseManager()->AddView(IDR_MAINFRAME, _T("My view"), IDR_MAINFRAME);
CMouseManager::GetViewDblClickCommand
Возвращает команду, выполняемую при двойном щелчке пользователя в предоставленном представлении.
UINT GetViewDblClickCommand(int iId) const;
Параметры
iId
[in] Идентификатор представления.
Возвращаемое значение
Идентификатор команды, если представление связано с командой; в противном случае — 0.
CMouseManager::GetViewIconId
Извлекает значок, связанный с идентификатором представления.
UINT GetViewIconId(int iViewId) const;
Параметры
iViewId
[in] Идентификатор представления.
Возвращаемое значение
Идентификатор ресурса значка в случае успешного выполнения; в противном случае — 0.
Замечания
Этот метод завершится ошибкой, если представление не зарегистрировано с помощью CMouseManager::AddView.
CMouseManager::GetViewIdByName
Извлекает идентификатор представления, связанный с именем представления.
int GetViewIdByName(LPCTSTR lpszName) const;
Параметры
lpszName
[in] Имя представления.
Возвращаемое значение
Идентификатор представления в случае успешного выполнения; в противном случае — 0.
Замечания
Этот метод выполняет поиск по представлениям, зарегистрированным с помощью CMouseManager::AddView.
CMouseManager::GetViewNames
Извлекает список всех зарегистрированных имен представлений.
void GetViewNames(CStringList& listOfNames) const;
Параметры
listOfNames
[out] Ссылка на CStringList
объект.
Замечания
Этот метод заполняет параметр listOfNames
именами всех представлений, зарегистрированных с помощью CMouseManager::AddView.
CMouseManager::LoadState
Загружает состояние класса CMouseManager из реестра.
BOOL LoadState(LPCTSTR lpszProfileName = NULL);
Параметры
lpszProfileName
[in] Путь к разделу реестра.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Сведения о состоянии, загруженные из реестра, включают зарегистрированные представления, идентификаторы представлений и связанные команды. Если параметр lpszProfileName имеет значение NULL, эта функция загружает CMouseManager
данные из расположения реестра по умолчанию, управляемого классом CWinAppEx.
В большинстве случаев не нужно вызывать эту функцию напрямую. Он вызывается как часть процесса инициализации рабочей области. Дополнительные сведения о процессе инициализации рабочей области см. в разделе CWinAppEx::LoadState.
CMouseManager::SaveState
Записывает состояние класса CMouseManager в реестр.
BOOL SaveState(LPCTSTR lpszProfileName = NULL);
Параметры
lpszProfileName
[in] Путь к разделу реестра.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Сведения о состоянии, записанные в реестр, включают все зарегистрированные представления, идентификаторы представлений и связанные команды. Если параметр lpszProfileName имеет значение NULL, эта функция записывает CMouseManager
данные в расположение реестра по умолчанию, управляемое классом CWinAppEx.
В большинстве случаев не нужно вызывать эту функцию напрямую. Он вызывается как часть процесса сериализации рабочей области. Дополнительные сведения о процессе сериализации рабочей области см. в разделе CWinAppEx::SaveState.
CMouseManager::SetCommandForDblClk
Связывает пользовательскую команду с представлением, которое сначала зарегистрировано в диспетчере мыши.
void SetCommandForDblClk(
int iViewId,
UINT uiCmd);
Параметры
iViewId
[in] Идентификатор представления.
uiCmd
[in] Идентификатор команды.
Замечания
Чтобы связать пользовательскую команду с представлением, необходимо сначала зарегистрировать представление с помощью CMouseManager::AddView. Для AddView
метода требуется идентификатор представления в качестве входного параметра. После регистрации представления можно вызвать CMouseManager::SetCommandForDblClk
тот же входной параметр идентификатора представления, который вы предоставили AddView
. После этого, когда пользователь дважды щелкает мышь в зарегистрированном представлении, приложение выполнит команду, указанную uiCmd. Для поддержки пользовательского поведения мыши также потребуется настроить представление, зарегистрированное в диспетчере мыши. Дополнительные сведения о пользовательском поведении мыши см. в разделе "Настройка клавиатуры и мыши".
Если uiCmd имеет значение 0, указанное представление больше не связано с командой.
См. также
Диаграмма иерархии
Классы
Класс CWinAppEx
Настройка мыши и клавиатуры