|
// *********************************************************
// カレントメニューセット
// 戻り値 : 無し
// *********************************************************
void LboxMenu::SetSubMenu( int nPos )
{
LboxMenu::hCurMenu = GetSubMenu( LboxMenu::hCurMenu, nPos );
}
void LboxMenu::SetSubMenu( LPTSTR lpTarget )
{
LboxToken *Token = new LboxToken( );
LboxString *Work = new LboxString( );
Work->operator = (lpTarget);
if ( Work->operator == ( "" ) ) {
LboxMenu::hCurMenu = LboxMenu::hMenu;
return;
}
Token->CreateToken( lpTarget, "," );
int i;
HMENU hSavePopup;
for( i = 0; i < Token->nCount; i++ ) {
if ( i == 0 ) {
Work->operator = ( Token->Token[i] );
hSavePopup = LboxMenu::hMenu;
LboxMenu::hCurMenu = GetSubMenu( LboxMenu::hMenu, Work->Atoi() );
}
else {
Work->operator = ( Token->Token[i] );
hSavePopup = LboxMenu::hCurMenu;
LboxMenu::hCurMenu = GetSubMenu( LboxMenu::hCurMenu, Work->Atoi() );
}
}
if ( !IsMenu( LboxMenu::hCurMenu ) ) {
MENUITEMINFO minfo;
HMENU hPopup;
hPopup = CreatePopupMenu( );
ZeroMemory( &minfo, sizeof( MENUITEMINFO ) );
minfo.cbSize = sizeof( MENUITEMINFO );
minfo.fMask = MIIM_SUBMENU;
minfo.hSubMenu = hPopup;
Work->operator = ( Token->Token[Token->nCount-1] );
SetMenuItemInfo( hSavePopup, Work->Atoi(), true, &minfo );
}
delete Work;
delete Token;
}
| |