Поиск:

Ответ в темуСоздание новой темы Создание опроса
> про CListCtrl в стиле Report, как получить *CWnd ячейки? 
:(
    Опции темы
Dreamer_0x01
Дата 15.4.2005, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



Мой проект состоит из трех независимых программ.
Первая программа - (это основная моя работа) - это программа для микроконтроллера Atmel на 51 ядре, прибор измеряет несколько параметров и может передавать их через интерфейс RS485, протокол у меня свой.
Вторая программа - это уже программа на комп, предназначена для использования в рамках нашего предприятия и нужна для полного конфигурирования этого прибора с компа - это запись флеш-памяти (в которую надо загнать несолько тысяц значений из файла), всех параметров, и тд. (соответственно, прибор имеет соответствующее распознавание команд интерфейса.)

Сейчас речь идет о третьей программе. Она уже предназначена для пользователя.
Представляет своего рода терминал, который может обслуживать до 256 приборов. (Протокол обмена данных с прибором предусматривает 8 битную адресацию, опрос происходит по схеме "1. Все молчат - комп посылает запрос. 2. Все молчат - адресуемый говорит с компом".)

Вот. Соответственно на каждый прибор надо создать свое отображение. В этом отображении должны показываться основные параметры прибора (диапазон измериний, тип функции, измеренный параметр, ну и прочая специфика.). Причем на те, что стоят в важных местах, пользователь по своему усмотрению может открыть окошечко, в котором будет рисоваться график измеренного параметра. Окошечек этих будетоткрыто немного, где-то три-четыре (по опыту), с остальных приборов надо будет только снимать по одному параметру и сигнализировать в случае появляние каких-то крайних ситуаций. Важно, что эти окошечки не должны сильно загромождать экран, поэтому пользователь должен сам решить, какие ему больше всего нужны.

Соответсвенно, как я придумал это устроить чисто дизайнерски.

1. Главное окно имеет вид диалога с менюшкой, в которой находятся всякиевещи типа настроек портов, скоростей, таймаутов и прочего.
2. В главном окне есть табличка, которую я ка раз и хотел сделать.
В ней при опознавании присутствия прибора с новым адресом добавляется строка.
в этой строке добавляются следующие элементы:
  • чек-баттон в виде кнопки, который показывает, будем ли мы показывать значение измернного параметра прямо в таблице, или в специальном окошечке с графиком.
  • Тесктовые параметры
  • Комбобокс, который может выбрать режим отображения текстовых параметров - проценты, абсолютное значение и т.д....

в общем-то и вся идея.

Единственное, что мне тут не нравится - это тот самый присловутый скроллинг, ведь все сразу в таблицу не влезет. Но можно будет сделать так, чтобы вверху всегда стояли строки наиболееприорететные, а нижние вылезали в зону видимости только по принудительному скроллу или при аварийной ситуации, а в нормальном виде они просто где-то существует, и их значения всегда можно просмтреть в файле, который генерит программа.

Пробовал делть не в виде таблицы, а просто разбросать все "квадратики" по всему экрану, но уж больно в глазах рябит от такого представления. К тому же у всех разрешение монитора разное.


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Coocky
Дата 15.4.2005, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Цитата
чек-баттон в виде кнопки, который показывает, будем ли мы показывать значение измернного параметра прямо в таблице, или в специальном окошечке с графиком.
Тесктовые параметры
Комбобокс, который может выбрать режим отображения текстовых параметров - проценты, абсолютное значение и т.д....


Ха!Так чем мой пример не подходит?
В столбце режим так пишем-режим.По нажатию-делаем комбо..
Значит так.Хороним диалог.(Извини)
Делаем SDI,разделеный сплитером.В левом углу CListView,в правом CScrollView,для графика..
ListView можно делать со встроеными чеками.Смотри SetExStyle(),кажется


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Dreamer_0x01
Дата 15.4.2005, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



Цитата
Ха!Так чем мой пример не подходит?


Слушай, что называется "с ходу" он у меня не компиляется. У меня студия.NET, я в ней пока не очень разобрался, так как до этого видел только 6 и то мало с ней работал, а время у меня сейчас на секунды идет. Выдает несколько ерроров, не очень мне понятных, и один не опасный варнинг насчет преобразования типов и всякой ботвы.

TitleTip.cpp(240): error C2360: initialization of 'pts' is skipped by 'case' label
TitleTip.cpp(241): error C2360: initialization of 'pts' is skipped by 'case' label
TitleTip.cpp(206) : see declaration of 'pts'
GridCtrl.cpp(2830): error C2668: 'CUIntArray::InsertAt' : ambiguous call to overloaded function

Цитата

Значит так.Хороним диалог.(Извини)
Делаем SDI,разделеный сплитером.В левом углу CListView,в правом CScrollView,для графика..


Ну по прочтению некоторых ветвей форума я уже понял, что ты не любишь диалоги smile
Но тут есть маленькая деталь - программировать под винды я начал сравнительно недавно, и с SDI еще не разбирался. (Хотя, мысль мне нравится, но тогда уж делать с MDI мне так кажется - на каждый прибор свой документ создавать и кучу чайлд-окон лепить в разных представлениях.)
А с диалогами вроде бы что-то получается. Во всяком случае открыть\закрыть, нарисовать что-то внутри, подвигать их я научился уже. smile
Так что ввиду нехватки времени пока придется первую версию сделать так,как представляется для меня возможным. Проект-то надо в воскресение чтоб работал уже. Плюс естественно не без глюков все выйдет, еще какое-то время уйдет на отладку и креш-тесты smile


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Coocky
Дата 15.4.2005, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Dreamer_0x01
Хочешь,напишу тебе халявный интерфейс.Дай скриншот диалога.Все бесплатно.
Цитата
Хотя, мысль мне нравится, но тогда уж делать с MDI мне так кажется - на каждый прибор свой документ создавать и кучу чайлд-окон лепить в разных представлениях.)

Неудобно.Можно SDI,но с переключениями представлений



--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Dreamer_0x01
Дата 16.4.2005, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



Цитата

Хочешь,напишу тебе халявный интерфейс.Дай скриншот диалога.Все бесплатно.


Спасибо, Coocky. Я восхищаюсь подобным участием и поступками.
Но может быть, оттого я сейчас сижу именно сдесь и работаю за копейки, что никогда не любил выезжать на чужой спине. Часто это было как раз наоборот.
А поскольку это моя работа, и я за нее деньги получаю, я ее делаю сам. Я должен сам во всем рахобраться, иначе у меня не будет удовлетворения от сделанного.

Мне бы лучше понять, почему уменя твой пример не компиляется, это задело меня за живое - не люблю чувствовать себя чайником. Но как я понял, то что я написал,для тебя не очень информативно. Вот попробую еще сегодня дома скомпилять в шестой версии, может прокатит.


Добавлено @ 10:25
Кстати, ты говорил, что со скроллом будут ужасные глюки. Странно, но у меня нет сейчас ни одного, как я его не насиловал. Правда, это еще не окончательный вариант, а всего лишь наброски..


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Step
Дата 16.4.2005, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 2
Всего: 25





для тех кто еще не передумал извращаться над лист контролом:

если вы пожелаете еще и сделать анимашайн при наведения мышке на ячейку должен вам сообщить что выглядить будет уродливо, перерисовываться будет миниму 2 строки... мерцания в принципе гарантируеться, использовать двойную буферизацию будет затруднитель так как придеться хранить второй буфер для каждой строки, а потом сливать...


может я и не прав, но это то что ощутил на себе.... если я не прав дайте код... для двойной буфферизации лист контрола


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Coocky
Дата 16.4.2005, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Dreamer_0x01
Цитата
TitleTip.cpp(240): error C2360: initialization of 'pts' is skipped by 'case' label
TitleTip.cpp(241): error C2360: initialization of 'pts' is skipped by 'case' label
TitleTip.cpp(206) : see declaration of 'pts'
GridCtrl.cpp(2830): error C2668: 'CUIntArray::InsertAt' : ambiguous call to overloaded function



Да я сам в шоке.Разве там есть switch?
'CUIntArray::InsertAt'
А это откуда?
Ты точно МФС юзаешь? smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Dreamer_0x01
Дата 18.4.2005, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



Цитата

Да я сам в шоке.Разве там есть switch?


Есть, да еще какой... ;)
В "CTitleTip::PreTranslateMessage(MSG* pMsg) "


Цитата

CUIntArray::InsertAt'
А это откуда?


А это в
"int CGridCtrl::InsertColumn(LPCTSTR strHeading,
UINT nFormat /* = DT_CENTER|DT_VCENTER|DT_SINGLELINE */,
int nColumn /* = -1 */)
"
, "m_arColWidths.InsertAt(nColumn, (int)0);"



А МФС юзаю конечно...
Может, я что-то не то стянул?
Стягивал файл "26.зип", приаттаченный к твоему сообщению из какой-то старой ветви форума.




--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Coocky
Дата 18.4.2005, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



smile smile smile
Я тогда файлы не крепил-прав еще не было.Ща поищу smile
Добавлено @ 22:03
Вот лови.И будь Внимательный при поиске smile
http://forum.vingrad.ru/index.php?showtopic=34913


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Dreamer_0x01
Дата 19.4.2005, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



Цитата

Вот лови.И будь Внимательный при поиске


Да, и вправду лажа какая-то получилась...Сейчас историю в броузере просматриваю - ума не приложу, откуда я в тот день этот файл выкачал... smile

Эксперимент продолжается! Ура!


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Coocky
Дата 19.4.2005, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Dreamer_0x01
Ну проблемі будут-звони.За интерфейс отвечаю smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0519 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.