Управление с помощью объекта класса-оболочки
Для управления внедренным элементом ActiveX надо ввести в существующий диалоговый класс CTestGLDlg объект (переменную типа) класса-оболочки. Этот шаг тоже автоматизирован в Studio .NET, так как введение объекта влечет сразу несколько строк изменения кода.
- Поставьте фокус на окно внедренного элемента IDC_OPENGL в форме диалога и вызовите контекстное меню.
- В меню выберите команду Variable, которая запустит мастер Add Member Variable Wizard.
- Установите флажок Control Variable и задайте в полях диалоговой страницы мастера следующие значения: Access – public, Variable type – COpenGL, Variable name – * m_CTRL, Control ID – IDC_OPENGL
- Обратите внимание на то, что в.поле Control type уже выбран тип элемента OCX, и нажмите кнопку Finish.
Результатом работы мастера являются следующие строки программы:
- объявление переменной COpenGL m_CTRL; в файле заголовков TestGLDlg.h;
- вызов функции DDX_Control(pDX, IDC_OPENGL, m_CTRL), связывающей элемент управления в окне диалога с переменной m_CTRL. Этот вызов вы найдете в теле функции CTestGLDlg::DoDataExchange;
Для обеспечения видимости вставьте в начало файла TestGLDlg.h директиву:
#include "opengl.h"
В конец файла Stdafx.h вставьте директивы подключения заголовков библиотеки OpenGL:
# include <gl/gl.h> // Будем пользоваться OpenGL #include <gl/glu.h>
Теперь следует поместить в окно диалога элементы управления. Здесь мы не будем пользоваться страницами свойств элемента, созданными нами в рамках предыдущего проекта. Вместо этого мы покажем, как можно управлять внедренным элементом ActiveX с помощью объекта m_CTRL. Перейдите в окно диалогового редактора и придайте окну диалога IDD_TESTGL_DIALOG.
Идентификаторы для элементов управления можно задать так, как показано в табл. 9.2.
Таблица 9.2. Идентификаторы элементов управления.
Элемент | Идентификатор |
---|---|
Диалог | IDD_TESTGL_DIALOG |
Кнопка Data File | IDCJILENAME |
Кнопка Back Color | IDC.BKCLR |
Переключатель Quads | IDC_QUADS |
Переключатель Strips | IDC_STRIPS |
Выпадающий список Fill Mode | IDC_FILL |
Ползунок Light (X) | IDC_XPOS |
Кнопка Close | IDOK |
Для кнопки Quads установите свойство Group в положение True, а для кнопки Strips – в False. Обе они должны иметь свойство Auto в состоянии True. Важно еще то, что числовые значения их идентификаторов должны следовать по порядку. Для кнопки Data File установите свойство DefaultButton. Для выпадающего списка снимите свойство Sort (сделайте его False) и слегка растяните вниз его окно в открытом состоянии, для этого сначала нажмите кнопку раскрывания. Для ползунка вы можете установить свойство Point в положение Top/Left.