Starting to mock up a Recent Files menu

This commit is contained in:
Erik Faye-Lund 2008-09-30 19:12:38 +00:00
parent 4d601c31b0
commit fe8f177b32
3 changed files with 55 additions and 12 deletions

View File

@ -82,7 +82,11 @@ BEGIN
MENUITEM "&Save\tCtrl+S", ID_FILE_SAVE
MENUITEM "Save &As", ID_FILE_SAVE_AS
MENUITEM SEPARATOR
MENUITEM "Remote Export\tCtrl+E", ID_FILE_REMOTEEXPORT
MENUITEM "Remote &Export\tCtrl+E", ID_FILE_REMOTEEXPORT
POPUP "Recent &Files"
BEGIN
MENUITEM "No recent files", ID_RECENTFILES_NORECENTFILES, GRAYED
END
MENUITEM SEPARATOR
MENUITEM "E&xit", ID_FILE_EXIT
END

View File

@ -6,28 +6,36 @@
#define IDR_MENU 102
#define IDD_SETROWS 103
#define IDD_BIASSELECTION 104
#define IDC_EDIT 1002
#define IDC_SETROWS_EDIT 1002
#define IDC_BIASSELECTION_EDIT 1003
#define ID_FILE 40001
#define ID_FILE_EXIT 40002
#define ID_EDIT 40003
#define ID_EDIT_SETROWS 40007
#define ID_EDIT_BIAS 40008
#define ID_EDIT_CLEAR40011 40011
#define ID_EDIT_SELECTALL 40012
#define ID_EDIT_SELECTROW 40013
#define ID_EDIT_SELECTTRACK 40014
#define ID_FILE_NEW40015 40015
#define ID_FILE_REMOTEEXPORT 40016
#define ID_ACCELERATOR40019 40019
#define ID_FILE_REMOTEEXPORT 40003
#define ID_FILE_RECENTFILES 40004
#define ID_RECENTFILES_NORECENTFILES 40010
#define ID_RECENTFILES_FILE1 40011
#define ID_RECENTFILES_FILE2 40012
#define ID_RECENTFILES_FILE3 40013
#define ID_RECENTFILES_FILE4 40014
#define ID_RECENTFILES_FILE5 40015
#define ID_EDIT 40020
#define ID_EDIT_SETROWS 40021
#define ID_EDIT_BIAS 40022
#define ID_EDIT_SELECTALL 40023
#define ID_EDIT_SELECTROW 40024
#define ID_EDIT_SELECTTRACK 40025
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 104
#define _APS_NEXT_COMMAND_VALUE 40021
#define _APS_NEXT_COMMAND_VALUE 40026
#define _APS_NEXT_CONTROL_VALUE 1004
#define _APS_NEXT_SYMED_VALUE 101
#endif

View File

@ -207,6 +207,24 @@ void fileSave()
}
}
HMENU findSubMenuContaining(HMENU menu, UINT id)
{
for (int i = 0; i < GetMenuItemCount(menu); ++i)
{
if (GetMenuItemID(menu, i) == id) return menu;
else
{
HMENU subMenu = GetSubMenu(menu, i);
if ((HMENU)0 != subMenu)
{
HMENU ret = findSubMenuContaining(subMenu, id);
if ((HMENU)0 != ret) return ret;
}
}
}
return (HMENU)0;
}
static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
@ -234,6 +252,19 @@ static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA
SendMessage(statusBarWin, SB_SETTEXT, 1, (LPARAM)_T("0"));
SendMessage(statusBarWin, SB_SETTEXT, 2, (LPARAM)_T("0"));
SendMessage(statusBarWin, SB_SETTEXT, 3, (LPARAM)_T("---"));
#if 0
/* mock up a Recent Files menu */
HMENU lruFileMenu = findSubMenuContaining(GetMenu(hwnd), ID_RECENTFILES_NORECENTFILES);
RemoveMenu(lruFileMenu, 0, MF_BYPOSITION);
for (int i = 0; i < 5; ++i)
{
char temp[256];
_snprintf(temp, 256, "&%d test%d.ROCKET", i + 1, i);
InsertMenu(lruFileMenu, -1, MF_BYPOSITION | MF_STRING, ID_RECENTFILES_FILE1 + i, temp);
}
DrawMenuBar(hwnd);
#endif
}
break;