Иллюстрированный самоучитель по Visual Studio .NET

Управление с помощью объекта класса-оболочки

Для управления внедренным элементом ActiveX надо ввести в существующий диалоговый класс CTestGLDlg объект (переменную типа) класса-оболочки. Этот шаг тоже автоматизирован в Studio .NET, так как введение объекта влечет сразу несколько строк изменения кода.

  1. Поставьте фокус на окно внедренного элемента IDC_OPENGL в форме диалога и вызовите контекстное меню.
  2. В меню выберите команду Variable, которая запустит мастер Add Member Variable Wizard.
  3. Установите флажок Control Variable и задайте в полях диалоговой страницы мастера следующие значения: Access – public, Variable type – COpenGL, Variable name – * m_CTRL, Control ID – IDC_OPENGL
  4. Обратите внимание на то, что в.поле 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.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.