Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
 Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238

Меню-переключатель

08.12.2012, 20:22. Показов 2256. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вечер добрый форумчане. Есть меню:

файл ресурсов:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
IDC_GL MENU
BEGIN
    POPUP "&Файл"
    BEGIN
        MENUITEM "&Начать",                     IDM_GL_BEG
        POPUP "&Проекция"                     
        BEGIN
            MENUITEM "&Перспективная",              IDM_GL_PERSP
            MENUITEM "&Прямоугольная",               IDM_GP_PARALL
        END
        MENUITEM "&Выход",                      IDM_GL_END
        MENUITEM "&WTF",                        IDM_DRAW
        MENUITEM "&Рисовать",                   IDM_DR
        MENUITEM "&Влево",                      IDM_LEFT
    END
    POPUP "&Справка"
    BEGIN
        MENUITEM "&О программе ...",            IDM_ABOUT
    END
END
h-файл:

C++
1
2
3
4
5
#define IDM_GL_BEG                      141
#define IDM_GL_PERSP                    142
#define IDM_GP_PARALL                   143
#define IDM_PROJ                        145
#define IDM_GL_END                      144
cpp-файл (участок код с функционалом-переключателями):
C++
1
2
3
4
5
6
7
8
case WM_CREATE:
      opinion.beg_plus();
      hMenu = GetMenu(hWnd);
      SetMenuDefaultItem(GetSubMenu(hMenu, 0), IDM_GL_BEG, FALSE); 
      CheckMenuRadioItem(hMenu, IDM_GL_PERSP, IDM_GP_PARALL, IDM_GL_PERSP, MF_BYCOMMAND);// что за
    // CheckMenuRadioItem(hMenu, IDM_GL_PERSP, IDM_GP_PARALL, IDM_GL_PERSP, MF_BYCOMMAND);// хрень?!
      EnableMenuItem(hMenu, IDM_GL_PERSP, MF_GRAYED);
      EnableMenuItem(hMenu, IDM_GP_PARALL, MF_GRAYED);
Собственно вопрос: почему переключатель отказывается работать? - он... не переключается на др. пункт.
Миниатюры
Меню-переключатель  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.12.2012, 20:22
Ответы с готовыми решениями:

Переключатель содержимого блока, через выпадающее меню (+субменю)
Не знаю как правильно это назвать. Пример можно посмотреть на http://www.sports.ru/, блок Статистика. Подскажите пожалуйста, как...

переключатель
помогите с алгоритмом предположим есть переменная которая изначально равна 0 затем нажимаешь на обработчик case и она должна его менять...

Переключатель .cs
Подскажите, есть проект, там много файлов .cs все формы со своими панелями, кнопками и др элементами мне надо по кнопке браузер,...

8
 Аватар для Dima_c8
5 / 5 / 2
Регистрация: 17.12.2011
Сообщений: 148
09.12.2012, 10:20
Попробуйте меню не тут загружать в программу а при регистрации класса главного окна:
C++
1
wc.hMenu = "IDC_GL";
0
 Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238
09.12.2012, 14:47  [ТС]
Оно там и загружено:

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
ATOM RegMyWindowClass(HINSTANCE hInst, LPCTSTR lpzClassName)
{
  WNDCLASS wcWindowClass={0};
  // адрес ф-ции обработки сообщений
  wcWindowClass.lpfnWndProc = (WNDPROC)WndProc;
  // стиль окна
  wcWindowClass.style = CS_HREDRAW|CS_VREDRAW;
  // дискриптор экземпляра приложения
  wcWindowClass.hInstance = hInst;
  // название класса
  wcWindowClass.lpszClassName = lpzClassName;
  // загрузка курсора
//  wcWindowClass.lpszMenuName = MAKEINTRESOURCE(MM);
      ;
  wcWindowClass.hCursor = LoadCursor(NULL, IDC_ARROW);
  // загрузка цвета окон
  wcWindowClass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
  wcWindowClass.hIcon = NULL;
  wcWindowClass.lpszMenuName = MAKEINTRESOURCE(IDC_GL);    // меню 
  
 
 
//  wcex.lpszMenuName   = MAKEINTRESOURCE(IDC_WIN32PROJECT2);
  return RegisterClass(&wcWindowClass); // регистрация класса
}
0
 Аватар для Dima_c8
5 / 5 / 2
Регистрация: 17.12.2011
Сообщений: 148
09.12.2012, 15:54
А что вы делаете в том участке кода cpp?
0
 Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238
09.12.2012, 16:15  [ТС]
Делаю установку, что такой-то пункт меню будет переключателем.
0
 Аватар для Dima_c8
5 / 5 / 2
Регистрация: 17.12.2011
Сообщений: 148
09.12.2012, 18:03
А тьфу я не правильно понял я вабще с этим еще не работал. сори я не знаю ничего об этом
0
 Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238
09.12.2012, 20:38  [ТС]
=/
Всё ещё актуально.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33399 / 21509 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
10.12.2012, 21:19
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Цитата Сообщение от Ieroglif Посмотреть сообщение
Собственно вопрос: почему переключатель отказывается работать? - он... не переключается на др. пункт.
Собственно, где видно, как ты его перекидываешь в другое состояние? Само меню этого делать не будет, нужно в WM_COMMAND ловить:
C++
1
2
3
4
5
6
7
8
9
10
11
        case WM_COMMAND:
            switch LOWORD(wParam)
            {
                case IDM_GP_PARALL: // Кликнули на IDM_GP_PARALL? Выставляем его активным
                    CheckMenuRadioItem(hMenu, IDM_GL_PERSP, IDM_GP_PARALL, IDM_GP_PARALL, MF_BYCOMMAND);
                    break;
                case IDM_GL_PERSP: // Так? Значит, активизируем IDM_GL_PERSP
                    CheckMenuRadioItem(hMenu, IDM_GL_PERSP, IDM_GP_PARALL, IDM_GL_PERSP, MF_BYCOMMAND);
                    break;
            }
            break;
Только для начала убери вот эти строки, ты ж в них блокируешь пункты меню.
C++
1
2
            EnableMenuItem(hMenu, IDM_GL_PERSP, MF_GRAYED);
            EnableMenuItem(hMenu, IDM_GP_PARALL, MF_GRAYED);
1
 Аватар для Ieroglif
19 / 19 / 2
Регистрация: 23.06.2011
Сообщений: 238
10.12.2012, 22:10  [ТС]
UI, действительно! Спасибо большое!

Блокировка убирается в другом месте
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.12.2012, 22:10
Помогаю со студенческими работами здесь

Переключатель
Два брата Светозар и Тёма разошлись во мнении по поводу того, должен ли быть включен переключатель. Изначально переключатель выключен....

Переключатель
Приветствую. Такая проблема пытаюсь сделать форму звонка, и нужно сделать переключатель в битрексе, нужен вот такой , а из за стандартных...

Переключатель
Всем привет! Подскажите пожалуйста что не так? procedure TForm1.sSlider1Click(Sender: TObject); begin if sslider1.ImageIndexOn=1...

Переключатель
Есть обработка нажатия кнопки в Update() if (keyboardState.IsKeyDown(Keys.Z)) { ...

Переключатель
Всем привет, я сделал переключатель JRadioButton, и сделал для него слушатель. Прописал, что если мышка клик переключателю, то JTextField...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru