2011-07-07 12 views
11

He intentado utilizar algo como esto para configurar la información sobre herramientas de un elemento CMenu (como se describe here) pero solo se muestra en una línea y el salto de línea no está visible.MFC CMenu tooltip no se muestra

// read control id 
UINT id = menu->GetMenuItemID(1235); 
// modify caption and add tooltip? 
menu->ModifyMenu(id, MF_BYCOMMAND, id, "Click here\nThis is the tooltip for the menu item ..."); 

También intenté establecer el título directamente en el diseñador de recursos de estudio visual del elemento de menú con el mismo efecto. ¿Puede darme alguna pista sobre cuál es el problema? Estoy utilizando VS2008 en Windows 7.

¡Se agradece cualquier ayuda!

+0

Intentando configurar el texto en las propiedades del menú, en el diseñador de Visual Studio. No estoy 100% claro en el contexto completo, pero parece que esto podría ser un problema de MFC. –

+0

¿Has probado agregar el bit 'MF_STRING' también? P.ej. 'menu-> ModifyMenu (id, MF_BYCOMMAND | MF_STRING, id," Haga clic aquí \ nEsta es la información sobre herramientas para el elemento de menú ... ");' –

+0

Gracias por sus comentarios. @JonathanWood: Ya lo intenté (ver mi publicación original) y tuvo el mismo efecto. @JonasGulle: El bit MF_STRING tampoco tuvo ningún efecto. – Norman

Respuesta

1

Quizás no haya agregado los controles comunes de windows xp a su aplicación.

Trate de añadir los controles comunes a su stdafx.hy:

#ifdef UNICODE 
#if defined _M_IX86 
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") 
#elif defined _M_IA64 
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"") 
#elif defined _M_X64 
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") 
#else 
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 
#endif 
#endif 
1

Looks like an duplicate

Principalmente debe usar \ r \ n en lugar de \ n porque esto es lo MFC espera.

+0

No funciona. El resultado es el mismo que si se usa '\ n' solo. El texto se muestra en una línea e ignora por completo los caracteres de nueva línea. (Tenga en cuenta que el '\ r \ n' todavía está en el texto como ir a buscar con [' GetMenuString'] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms647983%28v=vs. 85% 29.aspx) copia ambos caracteres en la cadena) – Blacktempel