Класс 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
Настройка мыши и клавиатуры