Класс 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.

Иерархия наследования

CObject

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