15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


temp disable of MRU items

Ed Jennings -- edj@whidbey.com
Monday, August 26, 1996

Environment: VC++ 4.1, Windows NT 3.51

I have a SDI application with a most recently used file list. I used app 
wizard to generate my application and I have been letting MFC do all the
MRU management.

Sometimes I want all of the MRU items to be gray and not available for
selection.

I've used class wizard to generate a message map entry for the MRU:

    ON_UPDATE_COMMAND_UI(ID_FILE_MRU_FILE1, OnUpdateFileMruFile1)

and then added pCmdUI->Enable(TRUE) and pCmdUI->Enable(FALSE) to the
OnUpdateFileMruFile1() function.

The MRU gets reduced to just one item "Recent File" instead of having the
actual file names.

So I want to know if there is a way I can enable/disable the MRU menu items
and still have MFC do most of the MRU file list management?

- Ed

====================================================
  Ed Jennings               Email: edj@whidbey.com
  Jennings & Associates
  6215 S. Windfall Rd.      Voice: 360-341-3868
  Clinton, WA 98236
====================================================




Jerry Krupa -- jkrupa@ix.netcom.com
Thursday, August 29, 1996

[Mini-digest: 2 responses]

In message <199608262107.OAA10650@whidbey.whidbey.com> , From Ed 
Jennings , the following was written:
> Environment: VC++ 4.1, Windows NT 3.51
> 
> I have a SDI application with a most recently used file list. I used 
> app wizard to generate my application and I have been letting MFC do 
> all the MRU management.

Try using:
    ON_UPDATE_COMMAND_UI_RANGE (ID_FILE_MRU_FILE1, ID_FILE_MRU_FILE16,  
 OnUpdateFileMruFile1) instead of the single MRU message map entry. 


--
-- Jerry Krupa, jkrupa@ix.netcom.com
	  AKA 72147.3520@compuserve.com
      Written 08/29/96 @ 07:39


-----From: Simon Dong 

Ed,

You are almost there. You need to put

	ON_UPDATE_COMMAND_UI_RANGE(ID_FILE_MRU_FILE1, ID_FILE_MRU_FILE4,
OnUpdateFileMruFile1)

into your message map. Then in your OnUpdateFileMruFile1() you do the
enabling/disabling accordingly.

-Simon Dong
Quintus Corp.
simon.dong@quintus.com




Ed Jennings -- edj@whidbey.com
Sunday, September 01, 1996

Here's what I did to solve my problem of not being able to enable/disable
the MRU menu items.

1) Added the function OnUpdateFileMruFile1() to my class that is derived
   from CWinApp.

2) Added:

    ON_UPDATE_COMMAND_UI_RANGE (ID_FILE_MRU_FILE1, ID_FILE_MRU_FILE16,  
                                 OnUpdateFileMruFile1)
   to my message map.

3) Put this code in my OnUpdateFileMruFile1() function:

    // if there are no MRU files or currently executing measurements   
    if ((m_pRecentFileList == NULL) || (m_executingMeas == TRUE))
        pCmdUI->Enable(FALSE);
    else
        m_pRecentFileList->UpdateMenu(pCmdUI);

The code I added to OnUpdateFileMruFile1() is similar to the same code that is
in CWinApp's OnUpdateRecentFileMenu().

Thanks go to Simon Dong and Jerry Krupa for pointing out the need for the
ON_UPDATE_COMMAND_UI_RANGE code.


>Environment: VC++ 4.1, Windows NT 3.51
>
>I have a SDI application with a most recently used file list. I used app 
>wizard to generate my application and I have been letting MFC do all the
>MRU management.
>
>Sometimes I want all of the MRU items to be gray and not available for
>selection.
>
>I've used class wizard to generate a message map entry for the MRU:
>
>    ON_UPDATE_COMMAND_UI(ID_FILE_MRU_FILE1, OnUpdateFileMruFile1)
>
>and then added pCmdUI->Enable(TRUE) and pCmdUI->Enable(FALSE) to the
>OnUpdateFileMruFile1() function.
>
>The MRU gets reduced to just one item "Recent File" instead of having the
>actual file names.
>
>So I want to know if there is a way I can enable/disable the MRU menu items
>and still have MFC do most of the MRU file list management?
>

- Ed

====================================================
  Ed Jennings               Email: edj@whidbey.com
  Jennings & Associates
  6215 S. Windfall Rd.      Voice: 360-341-3868
  Clinton, WA 98236
====================================================





| Вернуться в корень Архива |