Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ресурсы в C++ Builder, Как создать меню не используя VCL? 
V
    Опции темы
ZufuS
Дата 5.5.2007, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



Появилось smile
Спасибо.

Это сообщение отредактировал(а) ZufuS - 5.5.2007, 00:25
PM   Вверх
Klin
Дата 5.5.2007, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Всегда рад любому выражению признательности smile

Это сообщение отредактировал(а) Klin - 5.5.2007, 00:28


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
ZufuS
Дата 5.5.2007, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



Теперь непонятно, как изменять меню в коде программы, например, почему RemoveMenu(LoadMenu(0,"Menu"),100,NULL); не удаляет Soup?
PM   Вверх
Klin
Дата 5.5.2007, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Если работаем с функциями API, то нужно действовать так:
Код

 HMENU my = LoadMenu(0,MAKEINTRESOURCE(100));
 ::SetMenu(Handle,my);
 DeleteMenu(my,0,MF_BYPOSITION);



--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
ZufuS
Дата 5.5.2007, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



В rc писал примерно
Код

Menu MENU
BEGIN
    MENUITEM "1", 100
    MENUITEM "2", 101
    MENUITEM "3", 101
    MENUITEM "4", 101
END

в cpp
Код

HMENU hMenu = LoadMenu(0,"Menu");
::SetMenu(hWnd, hMenu);
DeleteMenu(hMenu,0,100);

Пункт меню не удалился
PS что здесь означает ::? без него вроде тоже работает.
PM   Вверх
Klin
Дата 5.5.2007, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Цитата(ZufuS @  5.5.2007,  17:42 Найти цитируемый пост)
PS что здесь означает ::? без него вроде тоже работает. 

У меня не работает
Цитата(ZufuS @  5.5.2007,  17:42 Найти цитируемый пост)
DeleteMenu(hMenu,0,100);

Что за 100?  Нужно MF_BYPOSITION.
Код

 HMENU hMenu = LoadMenu(0,"Menu");
 ::SetMenu(hWnd, hMenu);
 DeleteMenu(hMenu,0, MF_BYPOSITION);


0 - порядковый номер вашего меню.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
ZufuS
Дата 5.5.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 12.7.2006

Репутация: нет
Всего: нет



Спасибо

Это сообщение отредактировал(а) ZufuS - 5.5.2007, 16:53
PM   Вверх
cyberstream
Дата 4.9.2007, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 7.9.2006

Репутация: 2
Всего: 4



Народ, а как вставить пункт в контекстное меню приложения (вызываемое правым кликом на taskbar-e)?  То есть он вставляется, но не работает. Что упустил?
Код


// код *.сpp
HMENU hSystemMenu;
const SC_UserItem = WM_USER + 1;
//=== ========================================================*/
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{   hSystemMenu = GetSystemMenu([I]Application->Handle[/I], false);
    AppendMenu(hSystemMenu, MF_SEPARATOR, 0, "");
    AppendMenu(hSystemMenu, MF_STRING, SC_UserItem, "&Условие задачи");
}//=== =======================================================*/

void __fastcall TForm1::WMSysCommand(TWMSysCommand& Msg)
{  if (Msg.CmdType == SC_UserItem) 
                 MessageBox(NULL, "Works !!!", "Message", MB_OK); 
   DefWindowProc(Handle,WM_SYSCOMMAND,Msg.CmdType, MAKELPARAM(Msg.XPos,Msg.YPos));
   Msg.Result=0;
}//===========================================================*/

// код *.h

class TForm1 : public TForm
{
__published:    // IDE-managed Components
...
        void __fastcall WMSysCommand(TWMSysCommand& Msg);
private:    // User declarations
public:        // User declarations
        __fastcall TForm1(TComponent* Owner);
        BEGIN_MESSAGE_MAP
        MESSAGE_HANDLER(WM_SYSCOMMAND,TWMSysCommand,WMSysCommand);
        END_MESSAGE_MAP(TComponent);
};

--------------------
Не знаешь кого спросить? - Спроси google!
PM MAIL   Вверх
586
Дата 4.9.2007, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



8: AppendMenu(hSystemMenu, MF_STRING | MF_BYCOMMAND, SC_UserItem, "&Условие задачи");

PM   Вверх
cyberstream
Дата 5.9.2007, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 7.9.2006

Репутация: 2
Всего: 4



Это сути дела не меняет.
При
Код

(в меню окна)
    InsertMenu(GetSystemMenu([color=red]Handle[/color], false);,SC_CLOSE, MF_STRING | MF_BYCOMMAND, SC_UserItem, "&Run OCARA");
 вызывается void __fastcall TForm1::WMSysCommand(TWMSysCommand& Msg),а 
Код

(в контекстное меню приложения - right click on taskbar)
    InsertMenu(GetSystemMenu([color=red]Application->Handle[/color], false);,SC_CLOSE, MF_STRING | MF_BYCOMMAND, SC_UserItem, "&Run OCARA");
 нет. Как поправить?


--------------------
Не знаешь кого спросить? - Спроси google!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0999 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.