From 7a4d9fd9e4c0b651c64c912b1d42c9f38fef2a2b Mon Sep 17 00:00:00 2001 From: leo Date: Fri, 19 Nov 2004 19:51:14 +0000 Subject: Added support for custom user shortcut keys. git-svn-id: http://svn.leocad.org/trunk@363 c7d43263-9d01-0410-8a33-9dba5d9f93d6 --- win/Bmpmenu.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'win/Bmpmenu.cpp') diff --git a/win/Bmpmenu.cpp b/win/Bmpmenu.cpp index 44f2742..2f0864e 100644 --- a/win/Bmpmenu.cpp +++ b/win/Bmpmenu.cpp @@ -1375,3 +1375,38 @@ HBITMAP CBMPMenu::LoadSysColorBitmap(int nResourceId) return NULL; return AfxLoadSysColorBitmap(hInst, hRsrc, FALSE); } + +BOOL CBMPMenu::ChangeMenuItemShortcut(const char *Shortcut, UINT nID) +{ + int nLoc; + CBMPMenuData *mdata; + + // Find the old CBMPMenuData structure: + CBMPMenu *psubmenu = FindMenuOption(nID,nLoc); + if (psubmenu && nLoc >= 0) + mdata = psubmenu->m_MenuList[nLoc]; + else + return false; + ASSERT(mdata); + + CString OldText = mdata->GetString(); + nLoc = OldText.Find('\t'); + + // Remove old shortcut text + if (nLoc > 0) + OldText = OldText.Left(nLoc); + + if (Shortcut) + { + OldText += '\t'; + OldText += Shortcut; + } +#ifdef UNICODE + mdata->SetWideString((LPCTSTR)OldText);//SK: modified for dynamic allocation +#else + mdata->SetAnsiString(OldText); +#endif + + return (CMenu::ModifyMenu(nID,mdata->nFlags,nID,(LPCTSTR)mdata)); +} + -- cgit v1.2.3