Новые книги

В книге рассматриваются базисные теоретические основы, необходимые для построения компиляторов, основные технологические приемы и методы их реализации. В ней приведены различные варианты заданий для выполнения лабораторного практикума по курсу «Системное программное обеспечение», а также примеры выполнения этих заданий. В каждом примере подробно рассматриваются все особенности его выполнения, как на этапе подготовки необходимой математической базы, так и на этапе программной реализации. В лабораторных работах автор обращает внимание на основные сложности, связанные с ее выполнением, а также на возможные типичные ошибки и недочеты, дает рекомендации по возможностям программной реализации, отличным от кода, приводимого в примерах.

Книга ориентирована на студентов, обучающихся в технических вузах по специальностям, связанным с вычислительной техникой. Но она будет также полезна всем, чья деятельность так или иначе касается разработки программного обеспечения.

Установить новое меню можно с помощью функции SetMenu, указав ей дескриптор нового меню.
Вот пример:

  push    offset szMenuName2 ;новое меню
  push    [hInst]
  call    LoadMenuA ;получаем hMenu
;eax - hMenu
  push    eax
  push    [hwnd]    ; handle текущего окна
  call    SetMenu   ; устанавливаем меню
Для удаления меню нужно использовать DestroyMenu. В отличие от SetMenu с hMenu=NULL, DestroyMenu освобождает память.
  push    [hwnd]
  call    GetMenu   ; получим hMenu
;eax - hMenu
  push    eax
  call    DestroyMenu

  push    [hwnd]
  call    DrawMenuBar ;перерисуем меню, точнее очистим

Полный текст: cr_menu4.zip