Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В меню не подчеркиваются символы для акселераторов 
:(
    Опции темы
Neighbour
Дата 11.4.2006, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите, пожалуйста, почему не подчеркиваются буквы для быстрого доступа в меню? Вроде правильно создаю:

Получается File а не File, Quit а не Quit


Код


#include <windows.h>
#include <windowsx.h>

#define SimWnd_DefProc DefWindowProc

#define CM_FILE_QUIT      1001
#define CM_VIEW_PICTURE   2001
#define CM_VIEW_TEXT      2002
#define CM_VIEW_NONE      2003
#define CM_HELP_ABOUT     3001



LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam);
BOOL Register(HINSTANCE hInstance);
HWND Create(HINSTANCE hInstance, int nCmdShow);

static char szAppName[] = "sample";
static HWND hMainWindow;

void SimWnd_OnDestroy(HWND hwnd);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                   LPSTR lpszCmdParam, int nCmdShow)
{
    MSG Msg;

    if (!Register(hInstance))
            return FALSE;    
    if (!Create(hInstance, nCmdShow))
            return FALSE;

    while (GetMessage(&Msg, NULL, 0, 0))
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }

    return Msg.wParam;
}

BOOL Register(HINSTANCE hInstance)
{
    WNDCLASS WndClass;
        
    WndClass.style            =    CS_HREDRAW | CS_VREDRAW;
    WndClass.lpfnWndProc    =    WndProc;
    WndClass.cbClsExtra        =    0;
    WndClass.cbWndExtra        =    0;
    WndClass.hInstance        =    hInstance;
    WndClass.hIcon            =    LoadIcon(hInstance, "#102");
    WndClass.hCursor        =    LoadCursor(hInstance, "#103");
    WndClass.hbrBackground    =    CreateSolidBrush(RGB(0,128,0));
    WndClass.lpszMenuName    =    NULL;
    WndClass.lpszClassName    =    szAppName;

    return (RegisterClass(&WndClass) != 0);
}

BOOL CreateMenuItem(HMENU hMenu,char *str, UINT uIns,
UINT uCom,HMENU hSubMenu,BOOL flag,UINT fType)
{   MENUITEMINFO mii;
    mii.cbSize=sizeof(MENUITEMINFO);
mii.fMask=MIIM_STATE|MIIM_TYPE|MIIM_SUBMENU|MIIM_ID;
mii.fType=fType;
mii.fState=MFS_ENABLED;
mii.dwTypeData=str;
mii.cch=sizeof(str);
mii.wID=uCom;
mii.hSubMenu=hSubMenu;
return InsertMenuItem(hMenu,uIns,flag,&mii);
}
HWND Create(HINSTANCE hInstance, int nCmdShow)
{
    HWND hwnd = CreateWindow(szAppName, szAppName,
                    WS_OVERLAPPEDWINDOW,
                    CW_USEDEFAULT, CW_USEDEFAULT,
                    CW_USEDEFAULT, CW_USEDEFAULT,
                    NULL, NULL, hInstance, NULL);

    if (hwnd == NULL)
        return FALSE;

    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);

    return hwnd;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message,
                         WPARAM wParam, LPARAM lParam)
{   static HMENU hMainMenu,hFileMenu,hViewMenu,hHelpMenu;
    switch (Message)
    
{case WM_CREATE:
{ hMainMenu=CreateMenu();
          hFileMenu=CreatePopupMenu();
  int i=0;
  CreateMenuItem(hFileMenu,"&Quit",i++,
  CM_FILE_QUIT,NULL,FALSE,MFT_STRING);
  hViewMenu=CreatePopupMenu();
          i=0;
          CreateMenuItem(hViewMenu,"&Text",i++,
  CM_VIEW_TEXT,NULL,FALSE,MFT_STRING);
          CreateMenuItem(hViewMenu,"&Picture",i++,
  CM_VIEW_PICTURE,NULL,FALSE,MFT_STRING);
  CreateMenuItem(hViewMenu,"&None",i++,
  CM_VIEW_NONE,NULL,FALSE,MFT_STRING);
  hHelpMenu=CreatePopupMenu();
  i=0;
          CreateMenuItem(hHelpMenu,"&About",i++,
  CM_HELP_ABOUT,NULL,FALSE,MFT_STRING);
  i=0;
  CreateMenuItem(hMainMenu,"&File",i++,
  0,hFileMenu,FALSE,MFT_STRING);
          CreateMenuItem(hMainMenu,"&View",i++,
  0,hViewMenu,FALSE,MFT_STRING);
          CreateMenuItem(hMainMenu,"&Help",i++,
  0,hHelpMenu,FALSE,MFT_STRING);
  SetMenu(hwnd,hMainMenu);
  DrawMenuBar(hwnd);
 return 0;
}
 
case WM_COMMAND:
{  switch(LOWORD(wParam))
{ case CM_FILE_QUIT:
{ MessageBox(hwnd,"Команда CM_FILE_QUIT",
"Меню",MB_OK); return 0;
}
              case CM_VIEW_TEXT:
{ MessageBox(hwnd,"Команда CM_VIEW_TEXT",
"Меню",MB_OK); return 0;
}
  case CM_VIEW_PICTURE:
{ MessageBox(hwnd,"Команда CM_VIEW_PICTURE",
"Меню",MB_OK); return 0;
}
  case CM_VIEW_NONE:
{ MessageBox(hwnd,"Команда CM_VIEW_NONE",
"Меню",MB_OK); return 0;
}
  case CM_HELP_about :
{ MessageBox(hwnd,"Команда CM_HELP_ABOUT",
"Меню",MB_OK); return 0;
}
}
return 0;
}
case WM_DESTROY: {PostQuitMessage(0);return(0);}
}
return SimWnd_DefProc(hwnd,Message,wParam,lParam);
}


PM MAIL   Вверх
zhgutov
Дата 11.4.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А сам быстрый доступ работает? Если да, то может в настройках операционки включена опция «скрывать символ подчеркивания до нажатия Alt»?
--------------------
Приполз. Увидел. Укусил.
PM MAIL   Вверх
Neighbour
Дата 12.4.2006, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В других приложениях все нормально. Акселераторы пока не реализованы. Может в этом причина.
PM MAIL   Вверх
Fixin
Дата 15.4.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

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



Попробуй через ресурсы для проверки
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


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

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


 




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


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

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