Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 13.02.2011
Сообщений: 179

создать меню

21.03.2013, 18:00. Показов 924. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Главное меню содержит раздел «Файл», в котором перечислены строки с именами команд «Создать», «Открыть» и «Выход». После выбора строк «Создать» или «Открыть» добавить строки «Сохранить» и «Печать», а также раздел «Редактирование» со строками «Вырезать», «Вставить» и «Копировать». Команды связать с акселераторами.

есть простая программа "Hello world"
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <windows.h> // під'єднання бібліотеки з функціями API
 
// Глобальні змінні:
HINSTANCE hInst; // Покажчик застосування
 
// Попередній опис функцій
ATOM        MyRegisterClass(HINSTANCE hInstance);
BOOL        InitInstance(HINSTANCE, int);
LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
 
// Основна програма 
 
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,
                    int nCmdShow)
{
    MSG msg;
 
    // Реєстрація класу вікна 
    MyRegisterClass(hInstance);
 
    // Створення вікна застосування
    if (!InitInstance (hInstance, nCmdShow)) 
    {
        return FALSE;
    }
    // Цикл обробки повідомлень
    while (GetMessage(&msg, NULL, 0, 0)) 
    {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
    }
    return msg.wParam;
}
 
//  FUNCTION: MyRegisterClass()
//  Реєструє клас вікна 
 
ATOM MyRegisterClass(HINSTANCE hInstance)
{
    WNDCLASSEX wcex; 
    wcex.cbSize          = sizeof(WNDCLASSEX); 
    wcex.style           = CS_HREDRAW | CS_VREDRAW; // стиль вікна
    wcex.lpfnWndProc     = (WNDPROC)WndProc; // віконна процедура
    wcex.cbClsExtra      = 0;
    wcex.cbWndExtra      = 0;
    wcex.hInstance       = hInstance; // покажчик застосування
    wcex.hIcon           = LoadIcon(NULL,IDI_APPLICATION); //MyIcon1;   // визначення іконки
    wcex.hCursor         = LoadCursor(NULL, IDC_ARROW); // визначення курсора
    wcex.hbrBackground  = GetSysColorBrush(COLOR_BTNFACE); // встановлення фона
    wcex.lpszMenuName    = NULL; // визначення меню
    wcex.lpszClassName   = "MyClass"; // ім'я класу
    wcex.hIconSm         = NULL;
 
    return RegisterClassEx(&wcex); // реєстрація класу вікна
}
 
// FUNCTION: InitInstance(HANDLE, int)
// Створює вікно застосування і зберігає покажчик застосування у змінній hInst
 
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
   hInst = hInstance; // зберігає покажчик застосування у змінній hInst
 
   hWnd=CreateWindow("MyClass", // ім'я класу вікна
        "My first program",             // ім'я застосування
        WS_OVERLAPPEDWINDOW,            // стиль вікна
        CW_USEDEFAULT,                  // розташування по Х
        CW_USEDEFAULT,                  // розташування по Y
        CW_USEDEFAULT,                  // розмір по Х
        CW_USEDEFAULT,                  // розмір по Y
        NULL,                           // дескриптор батьківського вікна
        NULL,                           // дескрипотр меню вікна
        hInstance,                      // покажчик застосування
        NULL);                          // параметри створення.
 
   if (!hWnd)                   // Якщо вікно не створилося, функція повертає FALSE
   {    
      return FALSE;
   }
   ShowWindow(hWnd, nCmdShow);  // Показати вікно
   UpdateWindow(hWnd);          // Оновити вікно
   return TRUE;                 // Вдале завершення функції
}
 
//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
// Віконна процедура. Приймає і обробляє всі повідомлення, які надходять у застосування
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
        PAINTSTRUCT ps;
        HDC hdc;
        RECT rt;
    switch (message) 
    {
        case WM_CREATE:         // Повідомлення надходить при створенні вікна
            break;
        case WM_PAINT:          // Перерисувати вікно
            hdc = BeginPaint(hWnd, &ps); // Розпочати графічне виведення
            GetClientRect(hWnd, &rt); // Область вікна для рисування
            DrawText(hdc, " Перша програма для WINDOWS ", -1, &rt,
                    DT_SINGLELINE|DT_CENTER | DT_VCENTER);
             EndPaint(hWnd, &ps); // Завершити графічне виведення
            break;
        case WM_DESTROY:        // Завершення роботи
             PostQuitMessage(0);
            break;
        default: 
// Обробка повідомлень, які не оброблені користувачем
            return DefWindowProc(hWnd, message, wParam, lParam); 
   }
return 0;
}
Каким образом ее изменить, чтобы выполнить данную задачу
объясните пожалуйста!!!!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.03.2013, 18:00
Ответы с готовыми решениями:

создать меню
Помогите создать меню с InsertMenu с вкладками -Файл/Выход -Вычислить

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

Создать панель инструментов из меню
Здравствуйте! Подскажите, как в WinApi из меню сделать панель инструментов? Сказали там есть какая-то одна функция, которая сама это...

1
Невнимательный
 Аватар для ft4l
3115 / 1299 / 359
Регистрация: 08.02.2013
Сообщений: 7,581
Записей в блоге: 2
21.03.2013, 23:04
http://msdn.microsoft.com/ru-r... 46337.aspx

Добавлено через 7 минут
После выбора строк «Создать» или «Открыть» добавить строки «Сохранить» и «Печать», а также раздел «Редактирование» со строками «Вырезать», «Вставить» и «Копировать». Команды связать с акселераторами.
Невнимательно прочитал, вообще-то нужно ещё что-то вроде
CreateMenu, AppendMenu, InsertMenu, DestroyMenu
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.03.2013, 23:04
Помогаю со студенческими работами здесь

Как создать главное меню в игре?
Люди, как создать главное меню в игре? Ну как обычно: запускаешь игру, появляется главное меню (например с пунктами &quot;Играть&quot;,...

Win32 API, как создать меню?
Здраствуйте помогите пожалуста. Нужно до простой программы каторая выводит пустое окно добавить меню с пунктамы Fille который имеет...

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

Визуальный вид меню, и что такое меню?
Люди, люди, человеки, помогите будьте так любезны. Я второй день мучаю интернет и свою библиотеку(она маленькая(нужных мне книг мало)). ...

Создать проект. Создать разделы меню. Вызвать форму из главного меню
Приветствую Всех. Недавно зарегистрировался на данном форуме. Вопрос и соответственно большая просьба. Пытаюсь создать проект, проявился...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru