Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ и WinAPI
Войти
Регистрация
Восстановить пароль
 
vadik_006
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 16
#1

Работа с главным меню - C++ WinAPI

19.05.2013, 21:46. Просмотров 439. Ответов 0
Метки нет (Все метки)

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

Самый главный вопрос главное меню это обыное меню которое вверху окна? Как сделать так что бы этот раздел исчезает и появляется раздел "Данные"

Добавлено через 20 часов 2 минуты
Цитата Сообщение от vadik_006 Посмотреть сообщение
Главное меню содержит раздел "Пользователи", в котором перечислены строки с именами типов пользователей. После выбора типа пользователя этот раздел исчезает и появляется раздел "Данные", в котором перечислены общие для всех типов пользователей и типичные только для выбранного типа строки данных. Команды отображенных строк связать с акселераторами.

Самый главный вопрос главное меню это обыное меню которое вверху окна? Как сделать так что бы этот раздел исчезает и появляется раздел "Данные"
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
114
115
116
117
118
119
120
121
122
123
124
125
126
#include <windows.h>
#include "resource.h"
#define ID_DATA 555
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
 
//Главное меню содержит раздел "Пользователи", в котором перечислены строки с именами типов пользователей. 
//После выбора типа пользователя этот раздел исчезает и появляется раздел "Данные", 
//В котором перечислены общие для всех типов пользователей и типичные только для выбранного типа строки данных. 
// Команды отображенных строк связать с акселераторами.
 
HINSTANCE hInst;
 
HMENU hMenu=LoadMenu(hInst,MAKEINTRESOURCE(IDR_MENU1));
char ClassName[]="Window";  
char AppTitle[]="Application Win32"; 
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
    hInst=hInstance;
    WNDCLASS wc;    
    HWND hWnd;  
    MSG msg;    
    
 
    if((hWnd=FindWindow(ClassName, NULL))!=NULL)
    {
        if(IsIconic(hWnd)) ShowWindow(hWnd, SW_RESTORE);
        SetForegroundWindow(hWnd);
        return FALSE;
    }
 
    memset(&wc, 0, sizeof(wc));
    wc.lpszClassName=ClassName;     
    wc.lpfnWndProc=(WNDPROC)WndProc;    
    wc.style=CS_HREDRAW|CS_VREDRAW;  
    wc.hInstance=hInstance;     
    wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    wc.hCursor=LoadCursor(NULL,IDC_ARROW);  
    wc.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH);
    SetMenu(hWnd,hMenu);
    wc.lpszMenuName=NULL;           
    wc.cbClsExtra=0;            
    wc.cbWndExtra=0;            
    RegisterClass(&wc);
 
    hWnd=CreateWindow(ClassName, AppTitle,WS_OVERLAPPEDWINDOW,100,100,850,340,NULL,hMenu,hInst,NULL);       // Дополнительная информация
    if(!hWnd) 
    {
        MessageBox(NULL, "Create: error",AppTitle,MB_OK|MB_ICONSTOP);
        return FALSE;
    }
 
 
    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);
 
   for( ; GetMessage(&msg, NULL, 0, 0); TranslateMessage(&msg),
        DispatchMessage(&msg) );
    
 
  
        return msg.wParam;
}
 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    char *str="First Windows aplication";
    
    
    switch(msg)
    {
        case WM_PAINT: 
        {
            HDC hDC;
            PAINTSTRUCT ps;
 
            hDC=BeginPaint(hWnd,&ps);   
            TextOut(hDC,325,120,str,strlen(str));   
            EndPaint(hWnd,&ps); 
        }; break;
 
        case WM_LBUTTONDOWN:
        {
            MessageBox(hWnd, "Выберите пункт меню", "Справка",  MB_OKCANCEL|MB_ICONINFORMATION);
        }; break;
        
        case WM_RBUTTONDOWN:
        {
            MessageBox(hWnd, "RIGHT CLICK", "Window",   MB_OK|MB_ICONSTOP);
        }; break;
 
        case WM_COMMAND:
        {
            switch(LOWORD(wParam))
                {
                
            case ID_BEGINNER:
                {   
                    //AppendMenu(hMenu,MF_POPUP,NULL,"Данные");
                    DrawMenuBar(hWnd);
                };break;
 
                    case ID_ABOUT:
                        {                       
                            MessageBox(hWnd, "Почти сделали", "РГР-№2", MB_OK|MB_ICONINFORMATION);
                        }; break;
                    case ID_EXIT:
                        {                       
                            PostQuitMessage(0);
                        }; break;
                }
        }break;
 
 
 
        case WM_DESTROY:
        {
            PostQuitMessage(0);
        }; break;
 
    default: return DefWindowProc(hWnd, msg, wParam, lParam);
    }
    return 0l;
}
как добавить я нашел, но возникает вопрос как добавить подменю? и привязать акселереторы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 21:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Работа с главным меню (C++ WinAPI):

Ошибка с заданием фрейма главным
Переписал прогу из учебника, скажите почему VS на неё ругается. Вот код. ...

Работа с меню
Здравствуйте всем. Кто-нибудь может объяснить это явление? Откуда берётся это...

Работа с меню в win32
Всем привет... Подскажите как привально сделать пункт меню в котором будет...

Работа со стандартным меню
При создании winApi приложения создается стандартное окно с меню, мне надо...

Работа с контекстным меню в Трее
Добрый день! При нажатии правой кнопки мыши на иконку своего приложения я...

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2013, 21:46
Привет! Вот еще темы с решениями:

Невидимый блок над главным меню
Всем привет, есть сайт i-took.ru на dle, адаптивный шаблон, шаблон переделываю...

Как уменьшить пространство над верхним горизонтальным главным меню?
Здравствуйте, Я хочу немного сдвинуть вверх мой сайт в браузере или, иными...

Работа с меню. При клике на кнопке меню или вне его, меню должно закрываться
Добрый вечер! Изучаю JQuery. Вот ради развития решил написать меню, практически...

Работа меню при наведении, оставить фон основного меню
Добрый день! Помогите решить вопрос. Есть dropdown меню (белый буквы и черные...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru