Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.

Создание таблицы на лету.

Автор: Rajiv Ramachandran

  • Скачать исходники - 14 Kb
  • Скачать демонстрационный проект - 22 Kb

    Скриншот примера - SizeDemo.gif

    Описание

    Одно из моих приложениий требовало, чтобы пользователь мог изменять видимую область на лету. Нечто похожее есть в MS-Word в виде выпадающего окна для создания таблицы. Так вот этот пример тоже самое :).

    Совместимость: Visual C++5, 6, MFC

    Это окно имеет следующие возможности :

    1. Требует добавления в Ваш проект всего пары строк
    2. Выпадает где угодно с заданным начальным размером
    3. Позволяет пользователю выбрать нужное количество строк и колонок
    4. Позволяет расширять отображаемые строки и колонки динамически

    Использование данного элемента управления

    1. Добавьте TableWnd.cpp в Ваш проект
    2. Создайте в родительском классе переменную-член типа CTableWnd
    3. Конструктору требуется 5 аргументов. CTableWnd::CTableWnd(int maxx,int maxy,int nX,int nY,UINT nID) maxx и maxy максимальное количество строк и колонок, которые будут отображаться в окне.nX и nY начальное количество строк и колонок, которые будут отображаться в окне.nID - это номер (id) сообщения, которое будет передаваться родительскому окну, после того, как пользователь сделает свой выбор. По умолчанию эти параметры определены как TW_SETPARAMS.
    4. Чтобы окно "выпало" - достаточно вызвать создающую функцию-член: m_TableWnd.Create(parentWnd,nPosX,nPosY); где parentWnd - родительское окно, а nPosX и nPosY - это X и Y координаты экрана, где будет отображено выпадающее окно
    5. В DefWindowProc вашего родительского окна, обработайте сообщение TW_SETPARAMS. Новое количество строк и колонок посылается как LOWORD и HIWORD соответственно в параметре wParam.

      Вот вроде и всё.

    Весь процесс выглядит следующим образом. CTableWnd создаёт себя и вычисляет свои размеры исходя из количества строк и колонок заданных для отображения. Также он создаёт статический элемент управления, который используется для отображения текущего количества строк и колонок. Изначально все квадратики белые. Если двигать мышкой по окну, то пространство квадратов выше и левее курсора мышки будет выделяться и окрашиваться в синий цвет. Если пользователь будет перемещать курсор мышки удеживая нажатой левую кнопку, то окно автоматически будет расширяться до тех пор, пока не превысит значения maxx и maxy , заданные в конструкторе.

    И напоследок, когда окно будет закрыто, то класс не будет уничтожен. Чтобы не использовать многократно тот же самый объект. Поэтому для безопасности лучше использовать статическую или локальную переменную.

     

     





<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS