Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Cambalinho

[C\C++ 11 - win32] - como obter os eventos de entrada e saída nos items dos menus?

Recommended Posts

preciso de ajuda em varios aspectos que me deixam mais confuso do que o inglês no MSDN :(

disseram-me que a mensagem WM_MENUSELECT, verifica o movimento do rato entre os items do menu(bom para verificar as entradas e saídas entre items): http://msdn.microsoft.com/en-us/library/windows/desktop/ms646352%28v=vs.85%29.aspx

 

- o LOWORD(wparam) da-me o index\posiçao do item do menu;

- o HIWORD(wparam) da-me as propriedades do item do menu;

- lparam da-me o handle do menu. onde foi clicado.

 

juntando esta informaçao e WM_INITMENUPOPUP: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646347%28v=vs.85%29.aspx

 

- wparam da-me o handle do menu item ou do menu popup;

- LOWORD(lparam) da-me a posiçao do item;

- HIWORD(lparam) indica-me se o menu é ou nao 1 popup(nao sei bem traduzir o popup, aceito correçao);

 

fiz este codigo:

case WM_MENUSELECT:                {                    HMENU menuhandle2=(HMENU)lParam;                    int menu=LOWORD(wParam);                    if(HIWORD(wParam) & MF_HILITE & !MF_POPUP)                    {                        if(menuitem!=-1)                        {                            MENUITEMINFO menuInfo;                            menuInfo.cbSize = sizeof(MENUITEMINFO);                            menuInfo.fMask=MIIM_DATA;                            GetMenuItemInfo((HMENU)lParam,menuitem, true, &menuInfo );                            Menu *mMenu = (Menu *) menuInfo.dwItemData;                            if (mMenu!=NULL)                            {                                mMenu->Leave();                            }                        }                        //SetWindowText(HandleWindow,to_string(GetLastError()).c_str());                        MENUITEMINFO menuInfo;                        menuInfo.cbSize = sizeof(MENUITEMINFO);                        menuInfo.fMask=MIIM_DATA;                        GetMenuItemInfo((HMENU)lParam,menuitem, true, &menuInfo );                        Menu *mMenu = (Menu *) menuInfo.dwItemData;                        if (mMenu!=NULL)                        {                            mMenu->Enter();                        }                    }                    return 0;                }                break;                case WM_INITMENUPOPUP:                {                    menuhandle=(HMENU)wParam;                    return 0;                }                break;

eu devo ter interpretado alguma coisa mal :(

porque ainda me dá erros :(

alguem me pode explicar onde me enganei e como interpretei mal o MSDN?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×