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

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


Multiple DocTemplate ???

Pondor -- Pondor@cris.com
Monday, April 15, 1996

On Sun, 14 Apr 1996, Sandeep Khamesra wrote:

> VC++ 4.0
> Windows 95
>
> As u know in MDI application when we click
> new menu item it shows a list box which has
> shows the list of all document template..
> Is there any by which we can take control of
> that list box. What I want to do is In that lisb
> box I dont want one entry (DocTemplate) to
> appear..
> For ex. I have created 3 MDIDocTemplate..
> Say A, B,C..
> Now when I say New a list box comes whose
> contents are A,B,C. But due to some reason,
> I dont want A to appear in the List box.
> Is it possible ?

from what i can tell by burrowing through the source code, it doesn't seem
like there is any built-in support for modifying the listbox you speak of.
what i suggest doing is overriding the CDocManager::OnFileNew() function
(it is virtual) and implementing your own version.  you will also have to
implement your own version of CNewTypeDlg (the dialog with the listbox).
this would be the class where you choose what actually gets included in
the listbox.  the code for all of this in "DOCMGR.CPP".  use it as your
reference.

one of the best things i like about MFC is that they actually give you the
source code.  with a little bit of patience, and a lot of debugging, you
can actually figure out what the heck those people at MS are trying to do.
;-)

good luck!

=========================
Phil Chung
Pondor@concentric.net
75252.3370@compuserve.com
=========================




Jackie Braun -- jbraun@eagle.wbm.ca
Wednesday, April 17, 1996

[Mini-digest: 2 responses]

>On Sun, 14 Apr 1996, Sandeep Khamesra wrote:
>
>> VC++ 4.0
>> Windows 95
>>
>> As u know in MDI application when we click
>> new menu item it shows a list box which has
>> shows the list of all document template..
>> Is there any by which we can take control of
>> that list box. What I want to do is In that lisb
>> box I dont want one entry (DocTemplate) to
>> appear..
>> For ex. I have created 3 MDIDocTemplate..
>> Say A, B,C..
>> Now when I say New a list box comes whose
>> contents are A,B,C. But due to some reason,
>> I dont want A to appear in the List box.
>> Is it possible ?
>

Note: I use VC++ 1.5 (Win 3.1) so I'm not sure if the following holds true
for VC++ 4.0 but ... 

The listbox will display those doctemplates which were explictly registered
using "AddDocTemplate()". If you do not register the template, it will not
be included in the listbox (nor will it be available for automated doc/view
creation).  And, also, if you don't register it, remember to delete the
"m_pTemplate" pointer in your CWinApp::ExitInstance() function.


-----------------------------------------------------------------
 Jackie Braun, Ph.D. |  Randco Software Corporation
 Consultant          |  2530 Hanover Avenue
 jbraun@eagle.wbm.ca |  Saskatoon SK         Phone (306)343-3380
                     |  Canada S7J 1G1       Fax   (306)343-3341
-----------------------------------------------------------------

-----From: "Dan McNerthney" 

You can edit the resource string assoicated with the template and blank the 
third substring.  According to the docs, this will remove it from the FileNew
dialog box.

example:
IDR_A string 
before:
Book\nchecks\nCheck Book\nCheck Book File
(*.chb)\n.chb\nChkBookFileType\nCheck Book File Type\nCHBK\nCheck Book Files

after:
Book\nchecks\n\nCheck Book File (*.chb)\n.chb\nChkBookFileType\nCheck Book
File Type\nCHBK\nCheck Book Files

The help on CDocTemplate::GetDocString has more details.






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