195 / 14 / 1
Регистрация: 02.01.2017
Сообщений: 205
1

Как задействовать пункт меню

23.11.2017, 13:37. Показов 1331. Ответов 4

Author24 — интернет-сервис помощи студентам
Здравствуйте, никак не могу понять как задействовать верхний пункт меню(тот из которого выпадает подменю).
Нр File Edit View
| New |
| Close |______________
- >| Open | c:\1.ut |
| ------------------ c:\2.ut |
| | Exit | c:\3.ut |
| -----------------| c:\16.txt |
| | d:\17.ut |
вот этот ----------------------

Я хочу чтобы нажав на open я открывал диалог open files, а если щёлкнуть по нижним файлам,то какой-нибудь из последних файлов.
Пункт open можно определить не по дескриптору а по имени или по счёту?

Добавлено через 34 секунды
Бл. всё сместилось.0_0
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2017, 13:37
Ответы с готовыми решениями:

Как выбрать пункт меню?
всем привет! подскажите как выбрать пункт меню в другом приложении функциями Win API? пробовал...

Как программно выделить (сделать активным) пункт меню?
Возник вопрос, на который нет ответа. Нужно программно навести курсор на пункт меню. К примеру, при...

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

Клик на пункт меню
Создаю меню: HMENU hmenu1; HMENU hPopMenuFile; hmenu1 = CreateMenu(); hPopMenuFile =...

4
15 / 16 / 6
Регистрация: 24.10.2017
Сообщений: 48
26.11.2017, 04:17 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
HMENU menu = CreateMenu();
HMENU menuitem = CreateMenu();
HMENU menusubitem = CreateMenu();
 
AppendMenu( menusubitem, MF_STRING, 1, L"&Open" );
AppendMenu( menusubitem, MF_SEPARATOR, 0, 0 );
AppendMenu( menusubitem, MF_STRING, 2, L"file.txt" );
AppendMenu( menusubitem, MF_STRING, 3, L"file2.txt" );
AppendMenu( menuitem, MF_POPUP, (UINT_PTR)menusubitem, L"&Open" );
 
AppendMenu( menu, MF_POPUP, (UINT_PTR)menuitem, L"&File" );
 
... оконная процедура
 
case WM_COMMAND:{
    if( wParam == 1 ){
        Открыть диалог;
    }else if( wParam == 2 ){
        открыть файл file.txt;
    }else if( wParam == 3 ){
        открыть файл file2.txt;
    }
}break;
Изображения
 
0
195 / 14 / 1
Регистрация: 02.01.2017
Сообщений: 205
27.11.2017, 03:23  [ТС] 3
Понял. Спасибо. Получается программным образом дескриптор ставится, а в файле ресурсов нельзя.
У мя ещё маленький вопрос. А на дочерние окна меню можно как-нибудь сделать.
ps: у меня предчуствие что придётся рисовать меню в ручную.
0
1130 / 789 / 232
Регистрация: 12.04.2010
Сообщений: 2,012
27.11.2017, 16:37 4
Цитата Сообщение от Estimable Посмотреть сообщение
в файле ресурсов
Можно и в файле ресурсов.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
ID_MENU    MENU 
BEGIN
    // * * * * * * * * * * *    Меню  Файл  * * * * * * * * * * * * * 
    POPUP "File"
    BEGIN
 
           MENUITEM "Save",  ID_SAVE
 
           POPUP "Open"    // // // //      вложенное меню    // // // // 
           BEGIN
                      MENUITEM SEPARATOR
                      MENUITEM "file.txt",      ID_A
                      MENUITEM "file2.txt",     ID_B  
           END
    END
 
    // * * * * * * * * * * *    Меню Правка   * * * * * * * * * * * * * 
    POPUP "Edit"
    BEGIN
        // . . . 
        // . . . 
    END
 
    // * * * * * * * * * * *    Меню  Вид  * * * * * * * * * * * * * 
    POPUP "View"
    BEGIN
        // . . . 
        // . . . 
    END
END
Добавлено через 1 час 10 минут
Цитата Сообщение от Estimable Посмотреть сообщение
А на дочерние окна меню можно как-нибудь сделать.
Может быть Вам пригодится фукнция TrackPopupMenu.

TrackPopupMenu function
Displays a shortcut menu at the specified location and tracks the selection of items on the menu. The shortcut menu can appear anywhere on the screen.
1
195 / 14 / 1
Регистрация: 02.01.2017
Сообщений: 205
01.12.2017, 03:08  [ТС] 5
Спасибо
0
01.12.2017, 03:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2017, 03:08
Помогаю со студенческими работами здесь

Курсор не отлавливает пункт меню
После запуска программы при переходе в меню по ссылке "Список дисков" выдает окно с дисками, по...

Вывести текст по нажатию на пункт меню
Обрабатываю пункт меню и пытаюсь вывести текст, но ничего не выводится Такой же код при...

Добавить пункт в меню панели задач
Всем привет! Можно ли добавить пункт в меню панели задач? И как это сделать (с запуском моего...

Вызвать пункт контекстного меню со своими аргументами
Доброго времени суток! Не совсем относится к C++. Возникла такая ситуация, как получить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru