Вопрос № 175085: Мне необходимо разработать программу управления измерительной установкой(любой). Как вариант смоделировать с помощью uml диаграмм сценарий диалога, остальное в С++...
Вопрос № 175089: Здравствуйте эксперты, подскажите пожалуйста если в VC ++ аналог StringGrid из C++ Builder, и если есть, то напишите как им пользоваться. Вообще надо вывести массив данных, данними которого являются структуры со всякими полями, если какое-то другое р...
Вопрос № 175085:
Мне необходимо разработать программу управления измерительной установкой(любой). Как вариант смоделировать с помощью uml диаграмм сценарий диалога, остальное в С++
Слишком абстрактная задача. Любая измерительная установка подразумевает под собой любое сочетание любых измерительных
приборов, поэтому программа должна уметь на ходу динамически добавлять/убирать эти приборы + настраивать градуировки, погрешности, графическое представление данных, связь параметров между собой и прочее, и всё должно быть универсально. Такая программа стоит под тысяч долларов Купите себе LabVIEW + InTouch NI как раз разрабатывают промышленные системы и
змерения и управления процессами производства. Там можно построить программу для любой измерительной установки и диаграммы там есть, LabVIEW так вообще графический полностью.
Ответ отправил: Dr_Andrew, Старший модератор
Ответ отправлен: 14.12.2009, 06:45 Казахстан, Алма-Ата Организация: Казахский научный центр карантинных и зоонозных инфекций Адрес сайта:Медицинские программы для Linux ICQ # 256452186
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 257697
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 175089:
Здравствуйте эксперты, подскажите пожалуйста если в VC ++ аналог StringGrid из C++ Builder, и если есть, то напишите как им пользоваться. Вообще надо вывести массив данных, данними которого являются структуры со всякими полями, если какое-то другое решение то подскажите)
Создать ListView можно с помощью редактора ресурсов, накинув его на диалог. Или вручную, через CreateWindow, указав в качестве имени класса - WC_LISTVIEW
Код:
HWND hList = CreateWindow(WC_LISTVIEW, "", 0, 0 …
ListView в каком-то смысле чуть больше, чем StringGrid, потому что оно может быть не только как таблица, а как набор иконок, и оно не таблица по умолчанию. Поэтому, чтобы сделать его таблицей, нужно задать ему табличный стиль LVS_REPORT Стиль
ему можно задать через
Замечание: расширенные стили именно у ListView задаются через макрос (или специальное оконное сообщение, на основе которого этот макрос построен): ListView_SetExtendedListViewStyleEx
Ну вот, наше 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);
Колонки есть, начинаем заполнять, для этого используем стурктуру 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 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.