Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки по Visual C++ (MFC, платформа .NET)


Информационный Канал Subscribe.Ru

Visual C++.NET. Библиотека ATL. Уроки по программированию с сайта http://progs.biz

Рассылка №51

Visual C++.NET. Библиотека ATL. Урок 5. Испытываем компонент в VB.NET.
Visual C++.NET. Библиотека ATL. Урок 6. Добавление события.

Полные версии уроков (с картинками) можно найти по адресам
Урок 5. Испытываем компонент в VB.NET.
Урок 6. Добавление события.

Visual C++.NET. Библиотека ATL. Урок 5. Испытываем компонент в VB.NET

На этом занятии мы посмотрим, как наш компонент будет работать в программах написанных на VB.NET.

Для создания тестового проекта запустите Visual Studio.NET, выберите в далоговом окне New Project (меню File, затем New и Project) в качестве языка Visual Basic Projects, в качестве типа приложения - Windows Application.

В этом же диалоговом окне в качестве имени (поле Name) задайте test, в качестве местоположения (Location) - задайте папку test внутри папки с ATL проектом (папку надо создать). Нажмите OK для закрытия дилогового окна.

Если в VB.NET не показывается панель с компонентами, то нажмите а кнопочку Toolbox на панели инструментов Standard.

Естественно, что нашего компонента на панели не будет - его надо добавить вручную. Для этого щелкните правой кнопкой мыши где-нибудь на свободном месте панели с компонентами, и в контекстном меню выберите Costomize Toolbox.

В появившемся окне "Costomize Toolbox" перейдите на вкладку "Com Components" и выберите из списка CMyFirstATL Object (при необходимости можно воспользоваться кнопкой Browse и найти файл MyATL.dll в папке debug вашего проекта). Если такого файла нет и компонет в списке отсутствует, то, возможно, вы просто не откомпилировали ваш ATL-проект (для компиляции вы должны были в ATL-проекте нажать комбинацию клавиш Crtl+Shift+B).

Нажмите OK для закрытия окна. Наш новый компонент (со стандартным значком) должен появится на панели.

Перенесите наш компонент двойным щелчком на форму VB.

Если вы выделите на форме VB наш ATL-компонент, то увидите, что в окне Properties у него в числе прочих есть свойство num.

Для испытания компонета добавьте на форму кнопочку и в ее обработчике напишите такой код:

    Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
        AxCMyFirstATL1.inc()
        MsgBox(AxCMyFirstATL1.num)
    End Sub

Как видно, мы тут вызываем для компонента наш метод inc(), и затем показываем значение свойства num в combobox'е. Если мы запустим программу и несколько раз нажмем на кнопочку на форме, то увидим combobox'ы с последовательными числами 1, 2, 3,..

С испытанием компонента все.

Наверх

Visual C++.NET. Библиотека ATL. Урок 6. Добавление события

На этом занятии мы будем развивать наш компонент дальше - а именно к нему будет добавлено событие MyEvent. Это событие будет происходить тогда, когда свойство num для нашего компонента будет равно 3. Т. е. как только num окажется равным 3, наш компонент известит контейнер, на котором он будет расположен (например, форму Visual Basic), о возникновении этого события. А уж обратит ли внимание контейнер на это событие или не обратит - это дело самого контейнера (вернее, программиста, который будет использовать наш компоннент). В нашем примере в обрабитчике события на форме VB мы просто покажем обычный messagebox.

Для добавления события щелкните на интерфейсе _MyFirstATLEvents правой кнопкой мыши и в контекстном меню выберите Add и затем "Add Method...".

В качестве типа возвращаемого значения выберите void и в качестве имени наберите MyEvent.

Нажмите на кнопку Finish для закрытия диалогового окна.

Обратите внимание, что у интерфейса _MyFirstATLEvents пояился метод MyEvent.

Также обратите внимание, что в классе CMyFirstATL появилось событие MyEvent.

Теперь надо написать код для вызова этого события. Оно должно произойти, если свойство num станет равным 3, поэтому вносим следующие добавления в код для метода put_num:

STDMETHODIMP CMyFirstATL::put_num(SHORT newVal)
{
    // TODO: Add your implementation code here
    m_nNum=newVal;
    if(m_nNum==3){
        MyEvent();
    }
    return S_OK;
}

Как вы видите, тут мы просто вызываем метод MyEvent в случае, если переменная m_nNum стала в результате установки свойства num равным 3.

Компилируем проект (Ctrl+Shift+B) (Возможно, что для этого придется закрыть тествый проект VB.NET).

Смотрим, что у нас новенького в тестовом VB-проекте. Ага, наше событие появилось у компонента.

Пишем для него обработчик (для этого достаточно сделать на компоненте двойной щелчок):

    ...
    Private Sub AxCMyFirstATL1_MyEvent(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles AxCMyFirstATL1.MyEvent
        MsgBox("Событие MyEvent")
    End Sub
    ...

Как видно, в обработчике мы просто вызываем messagebox.

Внесите также изменения в обработчик для кнопки:

    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
        AxCMyFirstATL1.num += 1
    End Sub

При щелчке на кнопке мы просто увеличивем значение свойства num на 1.

Запускаем тестовый VB-проект. После третьего щелчка на кнопке должен возникнуть messagebox с надписью "Событие MyEvent".

Наверх

Рассылки с сайта progs.biz

Рассылки Subscribe.Ru
Новости сайта progs.biz

Краткое описание всех новых уроков и материалов на сайте progs.biz. Основные направления - языки программирования (Visual C++, Visual Basic.NET, C#, Delphi, Java), WEB-дизайн (HTML, PHP, PhotoShop, SSI), базы данных.


Copyright Алексеев Игорь, 2002

Copyright cайт progs.biz, 2002



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное