Как собрать элементы управления Active X в диалоге MFC - PullRequest
1 голос
/ 27 марта 2010

Я знаю, что мы можем перечислить элементы управления windows в диалоге и, используя обратный вызов, мы можем собрать элементы управления windows.

Я ищу конкретный способ фильтрации элементов управления на основе реализации интерфейса. Например, если элементы управления Active-X являются производными от интерфейса IDataControl, я хочу добавить их в список сбора интересов.

1 Ответ

0 голосов
/ 29 марта 2010

Вот общий процесс получения элементов управления ole / active-x внутри диалога.

  1. Сделать EnumWindows с обратным вызовом
  2. В обратном вызове прикрепите дескриптор окна к CWnd
  3. Попробуйте получить указатель IUnknown для элемента управления CWnd :: GetControlUnknown
    Советы: Как определить, является ли элемент управления стандартным или активным-x?

  4. Если возвращаемый IUnknown не равен NULL, выполните queryInterface для IDataControl.

  5. Если экземпляр IDataControl не нулевой, добавить в коллекцию
...