Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CComboBox, запретить выбор строки 
:(
    Опции темы
kurlyak
Дата 25.7.2009, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Вобщим ситуация такая. Есть у меня прога, в ней ведеться лог операций. Лог всех операций записываеться в комбо бокс (если кто видел то же самое в почтовике Зе Бат). Меня интересует как можно сделать, что бы пользователь не мог выбрать определенную строку из этого лога в комбо боксе? Что бы вот как есть лог с текущей строкой в заглавии- так он и оставался после того как пользователь попытаеться открыть комбо бокс и например выбрать строку. А после закрытия комбо бокса мне надо еще что бы заглавная строка не выделялась синим цветом- выбора.
PM MAIL   Вверх
triclosan
Дата 25.7.2009, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Имхо писать обработчик на onChange для первой задачи и owner draw для второй 
PM MAIL   Вверх
kurlyak
Дата 26.7.2009, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо за совет. А что писать в самом обработчике onChange что бы игнорировало выбор строки из комбо?

Это сообщение отредактировал(а) kurlyak - 26.7.2009, 11:39
PM MAIL   Вверх
triclosan
Дата 26.7.2009, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



что-то типа:

Код


class MyClass public SomeMFCBase
{
...
int m_curr_pos;
std::vector<int> denyIDs;
...
};

void MyClass::onClick()
{
m_curr_pos = m_ChkBox.GetCurSel(); // сохраняем текущую позицию
}


void MyClass::onChange()
{

std::vector<int>::iterator i = std::find(denyIDs.begin(), denyIDs.end(), m_ChkBox.GetCurSel());

if(i==denyIDs.end()) m_curr_pos = m_ChkBox.GetCurSel(); // Не найдено
else m_ChkBox.SetCurSel(m_curr_pos); // Найдено

}



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


Эксперт
****


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

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



Можно еще попытаться сабклассить выпадающий список комбобокса и сделать там собственную обработку LBUTTONDOWN и KEYDOWN (ничего не делать, дефолт не вызывать). Тогда ничего выбираться не должно. 


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


 




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


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

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