Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
11 / 11 / 2
Регистрация: 04.03.2012
Сообщений: 128

Два list control в 2х диалоговых окнах

09.07.2012, 21:50. Показов 1287. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема в следующем: у меня приложение с list control'ом. По команде открывается диалоговое окно, для которого я сделал новый класс ,в этом окне 2ой list control , для него создал переменную категории control.

В главном диалоговом окне приложения делаю всякую фигню с list control, а в диалоговом окне не могу даже сделать столбцы. Код окна со 2ым control:
C++
1
2
3
4
5
6
7
8
9
void CMainDlg::knopka_odin()
 
              {
                             klass_dva  dlg;
            
                 dlg.spisok.InsertColumn(0,L"Столбец один",LVCFMT_CENTER,100); // ошибка-вылет из проги при нажатии на обработчик этого кода
                             dlg.DoModal();
 
                           }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.07.2012, 21:50
Ответы с готовыми решениями:

Кодировка в диалоговых окнах
Здравствуйте! У меня возникла проблема. В title окна (на скрине) другая кодировка (должна быть по-русски) Почему так, ведь у меня уже...

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

Передача и работа с данными в диалоговых окнах
Всем доброго времени суток. Есть рабочая программа, но в неё небольшой недочёт("недоделка"). В программе осуществляется...

7
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
09.07.2012, 22:03
0. тип приложения?
1. что такое klass_dva?
2. какой тип у CMainDlg? (от чего унаследован)
0
11 / 11 / 2
Регистрация: 04.03.2012
Сообщений: 128
09.07.2012, 22:52  [ТС]
тип приложения -диалоговое окно;
klass dva-класс второго диалогового окна,в котором находится 2ой list control создал через мастер, его базовый СDialog
CMainDlg наследован тоже от СDialog

Добавлено через 18 минут
т.е- главное диалоговое окно приложения-в нём list control и кнопки управления, по нажатию на одну кнопку появляется диалог со вторым list control, но в нём ничего не сделать из-за вылета из проги, без него всё отлично работает.Вот.
0
32 / 30 / 6
Регистрация: 21.06.2012
Сообщений: 91
10.07.2012, 13:02
Во-первых, нужно понять на чем именно вылетает. Если вылетает при работе со списком, то нужно проверить, что визард (или ты =)) сделал все верно. То есть должно быть:
1) в файле *.h объявлена переменная ClistCtrl
2) в DoDataExchange должна быть создана связь между переменной и списком
3) убедиться, что в DoDataExchange прописан идентификатор именно твоего CListControl (то есть тот, который указан в ресурсах диалога)
1
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
11.07.2012, 23:38
Цитата Сообщение от Sawyer1988 Посмотреть сообщение
list control, а в диалоговом окне не могу даже сделать столбцы.
list control в каком режиме?
у него 4 режима
большие иконки
малые иконки
список
таблица
соотвественно столбцы можешь добавлять только в таблице
Цитата Сообщение от Sawyer1988 Посмотреть сообщение
dlg.spisok.InsertColumn(0,L"Столбец один",LVCFMT_CENTER,100); // ошибка-вылет из проги при нажатии на обработчик этого кода
dlg.DoModal();
круто..... у тебя еще нет окна а ты уже столбцы добавляешь
Как думаешь почему вылетает???

InsertColumn делай в OnInitDialog второго диалога
ибо до dlg.DoModal();
у тебе еще не окна
а когда DoModal(); выполняется то первый диалог отключается пока ты не выйдешь из второго диалога(разрушишь окно)
1
11 / 11 / 2
Регистрация: 04.03.2012
Сообщений: 128
12.07.2012, 18:28  [ТС]
Всё разобрался, всё ок!

Добавлено через 26 минут
Такой вопрос - у меня имеется класс , объекты которого я записываю в вектор:
C++
1
2
3
4
5
6
7
8
9
class stud{
...
...
...
};
....
vector<stud>v;
...
v.push_back(ob1);
Так вот, когда у меня объектов скажем больше 1000, мой вектор начинает "задумываться" при выводе данных или при каких-либо действиях в list control. Вопрос - что делать с распределением памяти в векторе, как улучшить производительность программы при работе с большим объёмом данных, используя вектор.Заранее благодарен!

Добавлено через 5 часов 14 минут
Хотя как вариант можно после например после 500-ой записи подключать второй вектор
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
12.07.2012, 19:37
Цитата Сообщение от Sawyer1988 Посмотреть сообщение
Так вот, когда у меня объектов скажем больше 1000, мой вектор начинает "задумываться" при выводе данных или при каких-либо действиях
Вектор работает с выделением,удалением памяти что достаточно не быстро
или выделяй место под 1000 и более элементов при создании вектора
или выделяй статически (правда может стека не хватить)
1
11 / 11 / 2
Регистрация: 04.03.2012
Сообщений: 128
12.07.2012, 20:10  [ТС]
C++
1
2
3
4
5
v.clear();
v.reserve(8000);
читаю строки,
создаю объект,
v.push_back(объект);
без v.reserve(n) разницы никакой нет

Добавлено через 21 минуту
Читаю строки->создаю объект->заливаю в вектор. Начинает зависать при выводе вектора где-то после 1000-ой записи.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
CFile file2(L"save.txt", CFile::modeRead);
CArchive ar2(&file2, CArchive::load);
CString name;
CString surname;
CString gruppa;
 
 
v.clear();
v.reserve(5000); 
 
do  {
 
    ar2.ReadString(name);
    ar2.ReadString(surname);
    ar2.ReadString(gruppa);
    int t=_ttoi(gruppa);    
    stud D;
    D.SetName(name);
    D.SetFum(surname);
    D.SetGruppa(t);
    
    if(name.IsEmpty()&(surname.IsEmpty())&(gruppa.IsEmpty()))break;
 
 
v.push_back( D);
 
    }
    while(!name.IsEmpty()|(!surname.IsEmpty())|(!gruppa.IsEmpty()));
    ar2.Close();
    file2.Close();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.07.2012, 20:10
Помогаю со студенческими работами здесь

Программное нажатие кнопок в диалоговых окнах Webbrowser
Доброго времени суток! При переходе по ссылке в Webbrowser, сначала появляется окошко и при нажатии &quot;Да&quot; появляется окошко...

Разместить в файле ресурсов два диалоговых окна
Здраствуйте. Хотелось бы получить помощь (подсказку, ссылку) вот по какому поводу. Имею непреодолимое желание разместить в файле ресурсов...

Как в диалоговых окнах типа "Сохранить как" установить вид "Таблица"?
Здравствуйте. Подскажите, пожалуйста, как мне в диалоговых окнах типа &quot;Сохранить как&quot; установить вид &quot;таблица&quot; и так, чтобы...

List Control и MFC
Здравствуйте. Учусь в техническом вузе, и у меня не профильным предметом идет изучение С++. За 5 дней до конца учебы нам внезапно выдали...

List Control в MFC
Я создал List Control в MFC, заполнил ячейки значениями. Как мне скопировать значение из, допустим, первой ячейки второго столбца в Edit...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru