Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CListBox: не могу добавить строку, проблема с работой CListBox 
:(
    Опции темы
thesnidestone
Дата 21.4.2005, 18:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Доброе время суток!

Подскажите, пожалуйста, в чем может быть проблема?

Есть класс:
Код

CClass 
{
    public:    
     ...
    void SetPointer(CListBox *_lb)
    {
         lb = _lb;
    };
    
    void PassString(CString string)
    {
         lb->AddString(string);
         lb->UpdateData();
    };
   
   private:
   ....
   CListBox *lb;
};


А в основной программе вызов:
Код

CClass c;
....
c.SetPointer((CListBox*)GetDlgItem(IDC_LISTBOX));
c.PassString("Something...");
.....    


Хотелось бы, чтобы передаваемая строка появилась в окне. Но, увы.... Функция UpdateData() возвращает 1. smile

Большое спасибо.

С уважением,
thesnidestone

  Вверх
Coocky
Дата 21.4.2005, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


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

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



Цитата
lb->UpdateData();

Лишнее!
UpdateData();
Вызывается в том случае,если элемент имеет тип не Control,а String,UINT и т.д.


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


Новичок



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

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



Так и с ней и без нее не работает...
PM MAIL   Вверх
Coocky
Дата 22.4.2005, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


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

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



thesnidestone
Ты дал слишком малый участок кода...Слишком у тебя все запутано.
Если ты сомневаешься в правильности моих слов,тогда делай
Создай диалог.Размести на нем ЛистБокс.Дай ему имя my_List.
А теперь в функции OnInitDialog() напиши my_List . AddString("Coocky был прав");


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


Эксперт
****


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

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



Вот, такое попробуй. Это,я думаю, то что, как раз тебе и надо smile
Код

void Printf(UINT nID, const char *Format,...)
{
    char Str[500];
    va_list arg;
    va_start(arg,Format);
    wvsprintf(Str,Format,arg);
    va_end(arg);
    Print(nID,Str,strlen(Str));
}

void Print(UINT nID, char *Str,int Len)
{
    char *PtrB,*PtrE;

    {
        //Parse Str for Search Control Symbols
        PtrB=PtrE=Str;
        while(*PtrE)
        {
            if(((*PtrE) == 0x0A) || ((*PtrE) == 0x0D))
            {
                *PtrE=0;
                if(SendDlgItemMessage(nID,LB_ADDSTRING,0,(LPARAM)PtrB) == LB_ERRSPACE)
                {
                    SendDlgItemMessage(nID,LB_DELETESTRING,0,0);
                    SendDlgItemMessage(nID,LB_ADDSTRING,0,(LPARAM)PtrB);
                }
                PtrE++;
                if(((*PtrE) == 0x0A) || ((*PtrE) == 0x0D)) PtrE++;
                PtrB=PtrE;
            }
            else PtrE++;
        }

        if(*PtrB)
        {
            if(SendDlgItemMessage(nID,LB_ADDSTRING,0,(LPARAM)PtrB) == LB_ERRSPACE)
            {
                SendDlgItemMessage(nID,LB_DELETESTRING,0,0);
                SendDlgItemMessage(nID,LB_ADDSTRING,0,(LPARAM)PtrB);
            }
        }
    }
    SendDlgItemMessage(nID,LB_SETTOPINDEX,SendDlgItemMessage(nID,LB_GETCOUNT,0,0)-1,0);
}

Типа пишем в листбокс:
Код

 Printf(IDC_LIST1, "Hello world..."); // IDC_LIST1 - ID листбокса №1
 Printf(IDC_LIST2, "Hello world..."); // IDC_LIST2 - ID листбокса №2




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


Новичок



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

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



bel_nikita
спасибо!)) тока я уже, кажется, разобрался с проблемой! но, все равно, спасибо большое за участие!))

ЗЫ а код интересный)) надо взять на заметку smile
PM MAIL   Вверх
Coocky
Дата 22.4.2005, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


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

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



bel_nikita
А я вот не понял smile


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


Эксперт
****


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

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



Coocky
Цитата
А я вот не понял

Этот код выводит (добавляет) текст в любой ЛистБокс в твоей программе, там только на вход функции подаешь ID ЛистБокса и текст.
Вот и все smile

З.Ы.: Кстати, может в ФАКю закинуть, а? smile


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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