Страница 1 из 1

Создание главного меню с "нуля"

Добавлено: 07 янв 2008, 05:23
ТВиктор
Недавно начал изучать программирование под Windows и столкнулся во с такой проблемкой, а как написать главное меню (menubar) на чистом WINAPI без использования resource.

Изображение

Если есть у кого нибудь исходник или статейка поднлитесь очень буду благодарен =)

Re: Создание главного меню с "нуля"

Добавлено: 07 янв 2008, 15:51
Romeo
Использование ресурсов при создании меню (тем более с таким количеством айтемов, как указано на рисунке) - это не только общепринятая, но ещё и наиболее идеологически выверенная схема. Советую использовать именно её, иначе все строки придётся хранить прямо в коде в качестве строковых констант, что крайне неудобно. К тому же возникнут дополнительные трудности при содании акселераторов. Если всё равно есть необходимость создать меню не использую ресурсы, то копай в строну функций CreateMenu, InsertMenuItem и других. Ссылка на дукументацию есть: лучшая документация - это MSDN. Начинать следует вот с этой старницы и далее двигаться по ссылкам:

http://msdn2.microsoft.com/en-us/librar ... 85%29.aspx

Re: Создание главного меню с "нуля"

Добавлено: 08 янв 2008, 15:20
ТВиктор
У меня ещё один вопросик не относящийся к этой теме
В чем отличие между:
int APIENTRY WinMain
и
int WINAPI WinMain

Что вообще они обозначают и для чего они ?

Re: Создание главного меню с "нуля"

Добавлено: 08 янв 2008, 16:27
Romeo
А леший его знает чем они отличаются :) Может раньше и отличались, но сейчас это одно и тоже. Я прошёлся по всем хедерам студии - везде APIENTRY лишь синоним WINAPI.

Для чего нужен WINAPI? Это вего лишь define, который включает в себе все спецификации (calling convention, far/near keyword), которые присущи для API функций данной версии Windows. Не стоит, думаю, говорить о том, что для разных версий Windows эти параметры могут отличаться, потому для увеличения переносимости кода следует писать именно WINAPI, а не far pascal, который подразумевается под этим define'ом, если у тебя Windows старше 95.