Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Связь "меню" с диалоговой панелью - как добавить меню в уже существующий класс?

25K
23 апреля 2007 года
Kortar
14 / / 23.04.2007
Здравствуйте, уважаемые программисты!

Есть проблема, думаю распространенная и тупая. Как связать новосозданный ресурс (меню) с главным классом "диалог", когда я создаю программу с помощью MFC dialog-based

Т.е. вкладка на "ресурс-вью" появилась "ID_MENU1", но с главным окошком, где меню должно быть естественно меню не появляется это..

Вот так это делалось в VC++ 6 , с помощью ClassWizard, а сейчас его нет(( и я уже два битых часа потратил, чтобы понять как это делать в новой версии((

http://savepic.ru/39239.jpg

Как то же самое сделать в VC++ 8 (2005)? Очень буду благодарен за помощь.
320
23 апреля 2007 года
m_Valery
1.0K / / 08.01.2007
1.Добавь в класс диалога переменную CMenu m_menu;
2.В ф-ии OnInitDialog допиши
 
Код:
...
             m_menu.LoadMenu(IDR_MENU1);
    SetMenu(&m_menu);
    DrawMenuBar();
            ...
25K
23 апреля 2007 года
Kortar
14 / / 23.04.2007
Спасибо огромное!

А вот так же, как в шестом, с помощью какого-нибудь визарда нельзя то же самое делать? Я еще совсем плохо знаю все это дело, а надо быстро сделать курсовой( если понадобица не меню добавить, а еще что-нибудь?
320
23 апреля 2007 года
m_Valery
1.0K / / 08.01.2007
Да,все не так уж сложно,особенно при работе с диалогом,многие
элементы управления можно вытащить из Toolboxa.Спрашивай,если что.
25K
23 апреля 2007 года
Kortar
14 / / 23.04.2007
Хорошо, найду книжку, буду смотреть!

А то все эти функции типа DrawMenuBar надо ж знать
25K
24 апреля 2007 года
Kortar
14 / / 23.04.2007
Ну вот, а теперь категорически не хочет работать функция MessageBox. В сообщении об ошибке указано, что заключенный в кавычки "сам текст сообщения" (если не ошибаюсь, второй параметр функции) невозможно переконвертирвоать в тип LPWSTR. (дословно, "unable to convert 1 parameter from char[длина текста] to LPWSTR").

m_SpeedEdit объявлена как int

 
Код:
char strSpeed[100];
_itoa_s(m_SpeedEdit,strSpeed,10);
MessageBox(strSpeed);
25K
24 апреля 2007 года
Kortar
14 / / 23.04.2007
Самое странное - не работает даже просто MessageBox("Какой-то текст"); - ту же ошибку выдает..(
320
24 апреля 2007 года
m_Valery
1.0K / / 08.01.2007
 
Код:
int m_SpeedEdit = 123;
char b[10];
CString s =itoa(m_SpeedEdit,b,10);
MessageBox(s);

Так будет работать,просто делаешь не правильно.;)
Цитата: Kortar
Самое странное - не работает даже просто MessageBox("Какой-то текст"); - ту же ошибку выдает..(


Какая ошибка ? Что пишет ? Скорее всего из-за юникода.

25K
24 апреля 2007 года
Kortar
14 / / 23.04.2007
Неа) теперь вообще огромную ошибку выдала по поводу строки CString s = itoa(m_SpeedEdit,b,10);


error C2440: 'initializing' : cannot convert from 'char *' to 'ATL::CStringT<BaseType,StringTraits>'
25K
24 апреля 2007 года
Kortar
14 / / 23.04.2007
Цитата: m_Valery
Какая ошибка ? Что пишет ? Скорее всего из-за юникода.



error C2664: 'CWnd::MessageBoxW' : cannot convert parameter 1 from 'const char [2]' to 'LPCTSTR'

Код всего лишь такой: MessageBox("s");

320
24 апреля 2007 года
m_Valery
1.0K / / 08.01.2007
Говорю ж из-за юникода.Заходи:Project->Properties->Character Set->
у тебя в 2005 студии должно стоять Use Unicode Character Set
измени на No Set или Use Multi-Byte Character Set
Будет работать.
25K
24 апреля 2007 года
Kortar
14 / / 23.04.2007
мда, чего-то я туплю :) спасибо большое! Действительно заработало, с чего бы это..)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог