Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Edit Box или List Box? для последовательно появляющихся строк 
:(
    Опции темы
murzzzzz
Дата 30.5.2005, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

Репутация: нет
Всего: 1



а если мне надо, чтобы в окне в процессе программы постепенно появлялся текст(список результатов выполнения вычислений), который, конечно же, пользователь не может изменять, то мне для этого нужно взять Edit Box или List Box? и какую функцию надо использовать, чтобы выводился этот текст? (с помощью CString,например:
Код

CString rez;
rez.Format("..."); //здесь будут записаны результаты расчета, 
                             //ну, я это все в цикл оформлю конечно же,
                             //ведь мне не меньше 50 строк надо таких

или в VC более рационально инфу выводить как-то по-другому) кстати, давно хотела спросить, понимает ли в VC cout и cin, если да, то в какие классы надо включить?
PM MAIL ICQ   Вверх
kometa_triatlon
Дата 30.5.2005, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 1
Всего: 6



murzzzzz
Что использовать - все равно. Можешь сделать едитбокс, поставить свойство read only и выводить текст - пользователь сменить не может. Для вывода используй функцию SetWindowText(LPCSTR text).
Хотя лучше вариант такой: в нужном месте размещаешь статический текст, удаляешь из него собственно текст. Потом так:
Код

SetDlgItemText(IDC_TEXT, str); 

IDC_TEXT - идентификатор статического текста.

Если нужен все-таки список, тогда лучше листбокс. У него есть функция AddString()
Код

CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LISTBOX);
pListBox->AddString(rez);



--------------------
Всё очень просто: сказки обман,
Солнечный остров скрылся в туман,
Замков воздушных не носит земля,
Кто-то ошибся, ты или я.

--------------
Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым.
PM MAIL ICQ   Вверх
murzzzzz
Дата 31.5.2005, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

Репутация: нет
Всего: 1



Уважаемый kometa_triatlon, я сделала, вроде, так как Вы и сказали:
Код

    CString rez;    
    rez.Format("qwerty");
    СListBox* pListBox = (CListBox*)GetDlgItem(IDC_LISTBOX);    
    pListBox->AddString(rez);

и после компиляции мне сообщается, что IDC_LISTBOX' : undeclared identifier.
Если честно, я вообще не сильно поняла смысл строчки
Код

СListBox* pListBox = (CListBox*)GetDlgItem(IDC_LISTBOX);    

поэтому я вообще попробовала по-своему, по-ламерски)):
Код

    CString rez;    
    rez.Format("qwerty");
    CListBox p;
    p.Create(IDC_LISTBOX);
    p.AddString(rez);

первоначальный вариант был с пустой функцией p.Create() smile , но, конечно же не проколало, потому что она не может быть без параметров. подскажите пожалуйста, может вместо IDC_LISTBOX можно указать какой-либо другой параметр, или прописать его где-то в "Add Member"... или я вообще что-то не то пытаюсь написать... блин, как же противно ничего не знать!!!!! smile надеюсь, с Вашей помощью хоть чему-то научусь!
PM MAIL ICQ   Вверх
murzzzzz
Дата 31.5.2005, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

Репутация: нет
Всего: 1



кстати, я поняла смысл строки:
Код

СListBox* pListBox = (CListBox*)GetDlgItem(IDC_LISTBOX);

ну, в смысле в литературе нашла описание)). только в этой самой литературе чуть-чуть подругому, в нашем случае выглядело бы так:
Код

СListBox* pListBox = GetDlgItem (...);

а вместо троеточия должны быть не один, а 2 аргумента: 1-дескриптор диалогового окна(если бы еще знать, что это такое...smile) и 2-идентификатор ресурса, то бишь, как я понимаю, наш IDC_LISTBOX.
чем больше начинаю соображать, тем больше начинаю путаться во всем этом...и все-таки, как же надо правильно делать этот список??
PM MAIL ICQ   Вверх
bel_nikita
Дата 31.5.2005, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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





--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
kometa_triatlon
Дата 1.6.2005, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 1
Всего: 6



Цитата
и после компиляции мне сообщается, что IDC_LISTBOX' : undeclared identifier.

IDC_LISTBOX - идентификатор listBox'a с которым ты работаешь. Так что если у тебя его нет, то ничего не выйдет. Так что размещай на форме ЛистБокс, задавай ему идентификатор IDC_LISTBOX и тогда все получится.

Функция Create используется для динамического создания объектов, это другой случай.

Цитата

Если честно, я вообще не сильно поняла смысл строчки

код C++
1:
СListBox* pListBox = (CListBox*)GetDlgItem(IDC_LISTBOX);   



Функция GetDlgItem возвращает указатель на контрол, идентификатор которого ты указываешь.

Код

СListBox* pListBox = (CListBox*)GetDlgItem(IDC_LISTBOX);

Код

СListBox* pListBox = GetDlgItem (...);

Как видишь, разница в том что нет (CListBox*). Зачем оно нужно? Чтобы привести твой указатель к нужному нам типу, потому что GetDlgItem возвращает указатель типа CWnd*. И если у класса CWnd нет функции AddString (а ее там нет), то ты не сможешь ее вызвать.



Цитата
а вместо троеточия должны быть не один, а 2 аргумента: 1-дескриптор диалогового окна(если бы еще знать, что это такое...) и 2-идентификатор ресурса, то бишь, как я понимаю, наш IDC_LISTBOX.

Дело в том, что функция GetDlgItem существует в двух вариантах. Первый возвращает указатель на объект. Это то, что я тебе показал. Второй вариант принимает указатель в качестве аргумента и присваивает ему нужное значение. Разница небольшая, кому как нравится.
То есть можно так:
Код

CWnd *pWnd;
pWnd=GetDlgItem(ID_...);

А можно так:
Код

HWND *phWnd;
GetDlgItem(ID_..., phWnd);

Добавлено @ 00:52
И не обязательно обращаться ко мне на Вы ;)
Неужели я кажусь таким большим и страшным? smile

Это сообщение отредактировал(а) kometa_triatlon - 1.6.2005, 00:46


--------------------
Всё очень просто: сказки обман,
Солнечный остров скрылся в туман,
Замков воздушных не носит земля,
Кто-то ошибся, ты или я.

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


GUI гуру
****


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

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





Цитата
вместо троеточия должны быть не один, а 2 аргумента: 1-дескриптор диалогового окна(если бы еще знать, что это такое...) и 2-идентификатор ресурса, то бишь, как я понимаю, наш IDC_LISTBOX.

Что за бред? В МФС все просто!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Перегруженые функции
CWnd* GetDlgItem( int nID ) const;
void CWnd::GetDlgItem( int nID, HWND* phWnd ) const;


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


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 7
Всего: 92



Цитата
IDC_LISTBOX' : undeclared identifier

1. Либо у тебя другой идентифкатор (что наиболее вероятно) - в property поставь
2. Либо строчки #include "resourse.h" нет.


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


 




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


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

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