Поиск:

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


Опытный
**


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

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



я добавила кнопки на тулбар...

в общем глюк следующий....

в ресурсах у меня первая кнопка на тулбаре 

ID_FILE_NEW

вот в тулбар едиторе при нажатии на кнопочку свойства стоят нормальные...ID_FILE_NEW

а при работе программы это кнопочка расценивается как кнопка с другим идентификатором






--------------------
– Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил.
PM MAIL   Вверх
Earnest
Дата 23.4.2008, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Проверь, что этот идентификатор нигде не переопределен.


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


Опытный
**


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

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



да нет вроде... но самое главное...какую бы я кнопочку первой не поставила, как бы я ее не назвала...по фиг...все равно расценивает как конкретную кнопку... ((((



--------------------
– Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил.
PM MAIL   Вверх
tonchitos
Дата 24.4.2008, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ну неужель никто не сталкивался?


вот как у мя тулбар в файле ресурсов описан


Код

IDR_MAINFRAME TOOLBAR  25, 25
BEGIN
    BUTTON      ID_FILE_NEW
    BUTTON      ID_FILE_OPEN
    BUTTON      ID_FILE_SAVE
    SEPARATOR
    BUTTON      ID_EDIT_CUT
    BUTTON      ID_EDIT_COPY
    BUTTON      ID_EDIT_PASTE
    SEPARATOR
    BUTTON      ID_FILE_PRINT
    BUTTON      ID_APP_ABOUT
    SEPARATOR
    BUTTON      ID_BACK
    BUTTON      ID_NEXT
END



а он превую кнопку расценивает как кнопку с ид ID_NEXT


в ресурс аш

#define ID_BACK                         32788
#define ID_NEXT                         32789
в стринг тейбле
ID_FILE_NEW     57600

Добавлено через 3 минуты и 39 секунд
в общем где происходит связь между областью битмапа и идентификатором  некоторым?


--------------------
– Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил.
PM MAIL   Вверх
Earnest
Дата 24.4.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Да вот ровно в IDR_MAINFRAME TOOLBAR - это и есть описание тулбара.

Чудеса какие-то...

Цитата

а он превую кнопку расценивает как кнопку с ид ID_NEXT

Вот это что значит?
И, кстати, покажи свой MESSAGE_MAP - нет ли у тебя там COMMAND_RANGE где-нибудь впереди...

Добавлено через 4 минуты и 45 секунд
Еще совет: поставиь точку прерывания на OnCmdMsg, можно в MFC, но лучше написать свой - это ведь в приложении. Примерно так:

Код

BOOL CMyApp::OnCmdMsg (UINT cmdID, int code...)
{
   if (code == CN_COMMAND)
   {
      int rrr = 5;   // сюда поставь точку прерывания
   }
   return CWinApp::OnCmdMsg (cmdID, code,...);
}


И посмотри, какая команда приходит при нажатии на первую кнопку. И если это таки ID_FILE_NEW, попытайся проследить, почему она не туда идет...


--------------------
...
PM   Вверх
tonchitos
Дата 7.5.2008, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Earnest @  24.4.2008,  16:52 Найти цитируемый пост)
Вот это что значит?
И, кстати, покажи свой MESSAGE_MAP - нет ли у тебя там COMMAND_RANGE где-нибудь впереди...



вот карта сообщений

Код

BEGIN_MESSAGE_MAP(CreadMDLView, CFormView)
    ON_NOTIFY(TVN_BEGINLABELEDIT, IDC_TREE1, &CreadMDLView::OnTvnBeginlabeleditTree1)
    ON_NOTIFY(TVN_ENDLABELEDIT, IDC_TREE1, &CreadMDLView::OnTvnEndlabeleditTree1)
    ON_NOTIFY(NM_RCLICK, IDC_TREE1, &CreadMDLView::OnNMRclickTree1)
    ON_COMMAND(ID_PROPERTIES, &CreadMDLView::viewProperties)
    ON_COMMAND(ID_BACK, &CreadMDLView::OnBackClick)
    ON_COMMAND(ID_NEXT, &CreadMDLView::OnNextClick)

    ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, &CreadMDLView::OnTvnSelchangedTree1)
    ON_NOTIFY(NM_CLICK, IDC_TREE1, &CreadMDLView::OnNMClickTree1)
    ON_NOTIFY(NM_DBLCLK, IDC_TREE1, &CreadMDLView::OnNMDblclkTree1)
    ON_WM_SIZE()
END_MESSAGE_MAP()


Добавлено через 10 минут и 55 секунд
Код

BOOL CreadMDLApp::OnCmdMsg(UINT nID, int nCode, void *pExtra, AFX_CMDHANDLERINFO * pHandlerInfo)
{
if (nCode == CN_COMMAND)
   {
      int rrr = 5;   // сюда поставь точку прерывания
   }
   return CWinApp::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}


вот поставила точку прерывания....она ж прерывается при любой комманде..никакой возможности нажать на кнопочку...


--------------------
– Люди забыли эту истину, – сказал Лис, – но ты не забывай: ты навсегда в ответе за всех, кого приручил.
PM MAIL   Вверх
Earnest
Дата 8.5.2008, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Почему ты приводишь карту сообщений вью, если там нет ID_FILE_NEW? Это ведь обрабтчик уровня приложения.
Если я правильно понимаю, ты нажимаешь кнопку ID_FILE_NEW, а выполняется обработчик ID_NEXT из вью? 

1) Поставь точку прерывания на обработчик ID_NEXT и проверь по стеку, с каким ид-ром команда пришла.
2) Обработчики вью проверяются раньше приложения, поэтому в приложении ставить точку прерывания уже поздно.
Сделай то же самое на вью (напиши ему OnCmdMsg). Еще забыла, в условие проерки нужно добавить pExtra==0, т.е.
 if (code == CN_COMMAND && !pExtra), иначе действительно, сквозь апдейты не прорвешься.



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


 




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


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

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