Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с контролами CEdit и CListBox. 
:(
    Опции темы
Vitaly_
  Дата 4.9.2007, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



1)
У меня есть функция :
Код

BOOL SetProcessIP( void ){
    int Index;
    Index = m_list.GetCurSel();
    CString str;
    if ( Index != -1 )
        str.Format(_T("%d"), ProcessID[Index]);
    else
    {
        str = _T("Error!");
        return FALSE;
    }
    m_Edit.SetWindowText( str );
    return TRUE;
}



Вопрос: Почему когда выполняется даная функция контрол типа CEdit не перерисовуется если например переменная str = "12".

2) Как мне словить соощение в WM_COMMAND на выбор того или иного елемента в контроле типа CListBox.

Код

......
case WM_COMMAND:
    wmId    = LOWORD(wParam);
    wmEvent = HIWORD(wParam);
    switch (wmId)
        {
        case IDС_LISTBOX:
                   // ЧТО НАДА ТУТ НАПИСАТЬ ЧТО БЫ СЛОВИТЬ СООБЩЕНИЕ КГДА ПОЛЬЗОВТЕЛЬ ВЫБИРАЕТ ТОТ ИЛИ ИНОЙ ЕЛЕМЕНТ В CListBox.
                break;
                .....
                }
break;
......

PM MAIL   Вверх
Earnest
Дата 4.9.2007, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



1) Например, ты переходишь в ветвь "return FALSE". Или переменная m_Edit не связана ни с каким реальным контролом. Или еще где-нибудь криво. 

2) Чтобы поймать изменение выбора в листбоксе, на диалоге напиши обработчик с сигнатурой void (void), и вставь его в карту сообщений: ON_LBN_SELCHANGE (IDC_LISTBOX, <твой обработчик>).


--------------------
...
PM   Вверх
abdyla_v
Дата 5.9.2007, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

2) Чтобы поймать изменение выбора в листбоксе, на диалоге напиши обработчик с сигнатурой void (void), и вставь его в карту сообщений: ON_LBN_SELCHANGE (IDC_LISTBOX, <твой обработчик>).


На сколько я понимаю там нету такого понятия как карта сообщения - это не диалоговое окно! Я создал простой проект Visual C++ => Win32 Project => Windows Application. Тоесть это есть простое Win32API приложение. Может я и ошиаюсь....

Добавлено через 4 минуты и 27 секунд
Цитата

2) Чтобы поймать изменение выбора в листбоксе, на диалоге напиши обработчик с сигнатурой void (void), и вставь его в карту сообщений: ON_LBN_SELCHANGE (IDC_LISTBOX, <твой обработчик>).


На сколько я понимаю там нету такого понятия как карта сообщения - это не диалоговое окно! Я создал простой проект Visual C++ => Win32 Project => Windows Application. Тоесть это есть простое Win32API приложение. Может я и ошиаюсь....

Добавлено через 5 минут и 6 секунд
Цитата

2) Чтобы поймать изменение выбора в листбоксе, на диалоге напиши обработчик с сигнатурой void (void), и вставь его в карту сообщений: ON_LBN_SELCHANGE (IDC_LISTBOX, <твой обработчик>).


На сколько я понимаю там нету такого понятия как карта сообщения - это не диалоговое окно! Я создал простой проект Visual C++ => Win32 Project => Windows Application. Тоесть это есть простое Win32API приложение. Может я и ошиаюсь....


PM MAIL   Вверх
Vitaly_
Дата 5.9.2007, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

2) Чтобы поймать изменение выбора в листбоксе, на диалоге напиши обработчик с сигнатурой void (void), и вставь его в карту сообщений: ON_LBN_SELCHANGE (IDC_LISTBOX, <твой обработчик>).


На сколько я понимаю там нету такого понятия как карта сообщения - это не диалоговое окно! Я создал простой проект Visual C++ => Win32 Project => Windows Application. Тоесть это есть простое Win32API приложение. Может я и ошиаюсь....


PM MAIL   Вверх
Earnest
Дата 5.9.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Ты как-нибудь определись: либо MFC + CEdit \ CListBox, либо голый WinAPI и никаких Це-эдитов...
Если у тебя не MFC-проект, то оконные классы работать не будут - их поддерживает оболочка.В API ловишь команду как ты написал, код уведомления LBN_SELCHANGE.



--------------------
...
PM   Вверх
Vitaly_
Дата 5.9.2007, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



CEdit \ CListBox - это контролы с WTL
PM MAIL   Вверх
SenkraD
Дата 5.9.2007, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Vitaly_,  а ты от всех нужных интерфейсов унаследовался?
Все нужные "мапы" и их поля есть?


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Vitaly_
Дата 6.9.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасиба за всё! Я уже сделал по другому!

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


 




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


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

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