Bonjour,
Lors d'un d�veloppement, je devait concat�ner deux CMenu.
J'ai r�alis� un bout de code pour y arriver.
Ca marche relativement mais j'ai quelques soucis. D'une je n'ai pas encore g�r� les sous menus et leurs r�cursivit�s.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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
26
27
28
29
30
31
32
33
34
35 void GE_AppendMenu ( CMenu * pMenu, CMenu * pNewMenu ) { ASSERT ( pMenu && pNewMenu ); if ( pMenu == NULL || pNewMenu == NULL ) return; UINT uPos = pMenu->GetMenuItemCount ( ); CMenu subMenu; char sText [ 128 ]; MENUITEMINFO info = {0}; info.cbSize = sizeof (MENUITEMINFO); // must fill up this field info.fMask = MIIM_STATE | MIIM_STRING | MIIM_ID | MIIM_SUBMENU; info.dwTypeData = sText; info.cch = sizeof ( sText ); for ( UINT i = 0; i < pNewMenu->GetMenuItemCount ( ); i++ ) { memset ( sText, '\0', sizeof ( sText ) ); if ( pNewMenu->GetMenuItemInfo ( i, &info, TRUE ) == FALSE ) { DWORD dwError = GetLastError ( ); ASSERT ( FALSE ); continue; } if ( info.hSubMenu != NULL ) { ASSERT ( FALSE ); } InsertMenuItem ( pMenu->m_hMenu, uPos++, TRUE, &info ); } }
Le second soucis, c'est au niveau du texte. Le premier �l�ment du menu fraichement ajout� est correct mais pour les autres �l�ments du menu le texte est tronqu� au bout de 15 caract�res.
Quelqu'un aurait une id�e voir une solution � mon probl�me ?
Merci d'avance
Partager