C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Создание таблицы на лету / Статьи / Visual C++

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

Автор: 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 , заданные в конструкторе.

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