Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Проблема с кнопкой на ToolBar'e


Автор: FlyDragon 24.12.2007, 11:27
Добрый день.

Возникла следующая проблема:
создал кнопку на ToolBar'e, добавил ON_COMMAND для нее.
но в ходе выполнения программы при нажатии кнопки и ввода данных
 запускается дебаг 
и указывает на CRuntimeClass* pClassThis = GetRuntimeClass();

в чем причина?

Добавлено через 8 минут и 56 секунд
Sorry  
можно перенести тему в С++/MFC

Автор: Earnest 24.12.2007, 14:13
ASSERT что ли выпадает? Так и говори, потому что "дебаг" запускается вместе в процессом, если ты в дебаге...
Приведи более подробную информацию, т.е. место кода, куда тебя бросает ASSERT. MFC-кода, естественно.

Автор: FlyDragon 24.12.2007, 14:51
Earnest,  objcore.cpp если тебя это интересует
Код

BOOL CObject::IsKindOf(const CRuntimeClass* pClass) const
{
    ASSERT(this != NULL);
    // it better be in valid memory, at least for CObject size
    ASSERT(AfxIsValidAddress(this, sizeof(CObject)));

    // simple SI case
    CRuntimeClass* pClassThis = GetRuntimeClass();    <------------указывает сюда
    return pClassThis->IsDerivedFrom(pClass);
}

Автор: Earnest 24.12.2007, 15:50
Вообще-то это тебя должно интересовать  smile 
Посмотри отладчиком на this. ASSERT, конечно, выпадает не на той строчке, что ты говоришь, а на предыдущей (а отладчик показывает следующий оператор). И этот ASSERT тебе практически русским языком говорит, что this у тебя какой-то левый. Где он испортился - смотри выше по стеку. Отладчиком.


Автор: FlyDragon 25.12.2007, 18:57
Earnest,  можно ли с помощью визарда добавить метод вызываемы при нажатии?

Автор: Earnest 25.12.2007, 21:05
Можно, если в диалог, если в главное окно - по-моему нет. Я визардами не пользуюсь (кроме как при создании проекта).
Но на твою проблему это никак не влияет. Кто-бы не добавил код - он неправильный, видимо.

Автор: FlyDragon 3.1.2008, 15:17
Все исправил, надо было просто ID кнопки поменять

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)