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

RFpro.ru: Программирование на C / C++


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

_Ayl_
Статус: Студент
Рейтинг: 1444
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 1371
∙ повысить рейтинг »
Micren
Статус: Бакалавр
Рейтинг: 1229
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / C/C++

Номер выпуска:1446
Дата выхода:15.12.2009, 04:00
Администратор рассылки:Dr_Andrew, Старший модератор
Подписчиков / экспертов:677 / 182
Вопросов / ответов:2 / 2
IRC-канал по теме:#C

Вопрос № 175085: Мне необходимо разработать программу управления измерительной установкой(любой). Как вариант смоделировать с помощью uml диаграмм сценарий диалога, остальное в С++...


Вопрос № 175089: Здравствуйте эксперты, подскажите пожалуйста если в VC ++ аналог StringGrid из C++ Builder, и если есть, то напишите как им пользоваться. Вообще надо вывести массив данных, данними которого являются структуры со всякими полями, если какое-то другое р...

Вопрос № 175085:

Мне необходимо разработать программу управления измерительной установкой(любой).
Как вариант смоделировать с помощью uml диаграмм сценарий диалога, остальное в С++

Отправлен: 09.12.2009, 23:16
Вопрос задал: Марзаев Эдуард, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает Dr_Andrew, Старший модератор :
Здравствуйте, Марзаев Эдуард!
Ответ сформирован на основе сообщения в мини-форуме.

© Цитата: Сандров Алекс
Слишком абстрактная задача.
Любая измерительная установка подразумевает под собой любое сочетание любых измерительных приборов, поэтому программа должна уметь на ходу динамически добавлять/убирать эти приборы + настраивать градуировки, погрешности, графическое представление данных, связь параметров между собой и прочее, и всё должно быть универсально. Такая программа стоит под тысяч долларов Купите себе LabVIEW + InTouch NI как раз разрабатывают промышленные системы и змерения и управления процессами производства. Там можно построить программу для любой измерительной установки и диаграммы там есть, LabVIEW так вообще графический полностью.

Ответ отправил: Dr_Andrew, Старший модератор
Ответ отправлен: 14.12.2009, 06:45
Казахстан, Алма-Ата
Организация: Казахский научный центр карантинных и зоонозных инфекций
Адрес сайта: Медицинские программы для Linux
ICQ # 256452186

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257697 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 175089:

    Здравствуйте эксперты, подскажите пожалуйста если в VC ++ аналог StringGrid из C++ Builder, и если есть, то напишите как им пользоваться. Вообще надо вывести массив данных, данними которого являются структуры со всякими полями, если какое-то другое решение то подскажите)

    Отправлен: 10.12.2009, 02:31
    Вопрос задал: Tribak, Студент
    Всего ответов: 1
    Страница вопроса »


    Отвечает Сандров Алекс, Студент :
    Здравствуйте, Tribak.

    Аналог в VC++ для StringGrid из стандартных виндовых контролов элементов управления Windows - ListView.

    Сейчас я немного поцитирую сюда msdn:

    Чтобы использовать ListView в программе, надо произвести инициализацию ComCtl32.dll, где ListView "живёт".
    Для этого надо позвать:

    Код:
    INITCOMMONCONTROLSEX icex;
    if(icex.dwSize == 0)
    {
    icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
    icex.dwICC = ICC_LISTVIEW_CLASSES;
    InitCommonControlsEx(&icex);
    }


    Создать ListView можно с помощью редактора ресурсов, накинув его на диалог. Или вручную, через CreateWindow, указав в качестве имени класса - WC_LISTVIEW

    Код:
    HWND hList = CreateWindow(WC_LISTVIEW, "", 0, 0 …


    ListView в каком-то смысле чуть больше, чем StringGrid, потому что оно может быть не только как таблица, а как набор иконок, и оно не таблица по умолчанию. Поэтому, чтобы сделать его таблицей, нужно задать ему табличный стиль LVS_REPORT
    Стиль ему можно задать через
    Код:
    SetWindowLong(hList, GWL_STYLE, style);

    Обычно, чтоб добавить стиль, делают так:

    Код:
    SetWindowLong(hList, GWL_STYLE, GetWindowLong(hList, GWL_STYLE) | style);


    Замечание: расширенные стили именно у ListView задаются через макрос (или специальное оконное сообщение, на основе которого этот макрос построен): ListView_SetExtendedListViewStyleEx

    Например, так:
    Код:
    ListView_SetExtendedListViewStyleEx(m_hList,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);


    Ну вот, наше ListView создано и причёсано, начинаем его наполнять.

    Сначала колонки. Для созадания колонок используется структура LVCOLUMN:

    < b>Код:
    LVCOLUMN lvc;
    memset(&lvc, 0, sizeof LVCOLUMN); // чистимся перед инициализацией.
    lvc.mask = LVCF_TEXT|LVCF_WIDTH; // флаги о том, что задавать будем текст в заголовке колонки и ширину
    lvc.cx = 300; // это ширина
    lvc.pszText = "Первая"; // это текст
    SendMessage(m_hList, LVM_INSERTCOLUMN, 0, (long)&lvc);

    lvc.cx = 300;
    lvc.pszText = "Вторая";
    SendMessage(m_hList, LVM_INSERTCOLUMN, 1, (long)&lvc);

    lvc.cx = 50;
    lvc.pszText = "Третья";
    SendMessage(m_hList, LVM_INSERTCOLUMN, 2, (long)&lvc);


    Колонки есть, начинаем заполнять, для этого используем стурктуру LVITEM. В отличие от колонок, итемы добавляются так: сначала устанавливаем первый итем(LVM_INSERTITEM) - это добавляет строчку в ListView, а дальше мы э ту строчку заполняем(LVM_SETITEM).

    Добавит две клеточки:

    Код:
    LVITEM li;
    memset(&li, 0, sizeof LVITEM); // чистимся перед инициализацией.
    li.mask = LVIF_TEXT; // будем добавлять только текст
    li.iItem = 0; // это первая строка
    li.iSubItem = 0; // это первый столбик
    li.pszText = "Проба"; // это текст
    SendMessage(m_hList, LVM_INSERTITEM, 0, (long)&li); // добавили и заполнили

    GetWindowText(*it, szData, 1023);
    li.mask = LVIF_TEXT; // будем добавлять только текст
    li.iItem = 0; // это первая строка
    li.iSubItem = 1; // это второй столбец
    li.pszText = "Пера";
    SendMessage(m_hList, LVM_SETITEM, 0, (long)&li); // заполнили


    Я для наглядности на каждой итерации задавал mask и iItem, но можно было это не делать, если они не меняются.
    Ну вот у нас есть ListView с тремя колонками и двумя заполнен ными ячейками.

    Советую так же посмотреть: 1. какие бывают стили у ListView. Например он может быть виртуальным. Это когда данные в него не заносятся, а запрашиются непосредственно перед показом. Такой контрол способен быстро делать навигацию по сотням тысяч записей. Скорость упирается в быстроту запроса данных из источника(например, база данных).
    2. маски у LVITEM и LVCOLUMN. ListView позволяет не только текст в ячейки добавлять, но и картинки и чекбоксы и дополнительную информацию. Например в ячейке можно хранить структуру данных (указатель на структуру), указав в качестве доп.информации(lParam) указатель на структуру, а в качестве текста(pszText) - одно из текстовых полей данной структуры.
    Жаргон в первых строках ответа.
    -----
    ∙ Отредактировал: Dr_Andrew, Старший модератор
    ∙ Дата редактирования: 10.12.2009, 11:01 (время московское)

    Ответ отправил: Сандров Алекс, Студент
    Ответ отправлен: 10.12.2009, 06:58

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 257563 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.12 от 30.11.2009

    В избранное