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

Работа с главным меню

19.05.2013, 21:46. Просмотров 444. Ответов 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
Ответы с готовыми решениями:

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

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

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

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

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

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

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

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

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


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

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

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