Open Primary .rc File As Text
Posted
by Brian P. Bailey
on January 27th, 1999
Sub OpenRCFile() 'DESCRIPTION: Opens the primary .rc file as text 'NOTE: If the resource file is already open within the ' resource editor, you may be asked if you wish to ' close it. ' Simply strip the project filename of its extension... ' ...and replace it with "rc" If Projects.Count = 0 Then MsgBox "Load a project first." Exit Sub End If PathName = ActiveProject.fullname PathName = Left(PathName, Len(PathName)-3) PathName = PathName + "rc" Documents.Open PathName, "Text" End Sub

Comments
Enhanced toggle macro: *.h/*.cpp file & open mode (*.rc/ or as txt)
Posted by Legacy on 05/17/2001 12:00amOriginally posted by: Feng Zhou
This is enhanced version based all the published macros.
Sub ToggleFile()
'DESCRIPTION:
' -- #1. Opens the .cpp or .h file for the current document.
' Toggles between the .cpp & .h file
' -- #2 Toggles rc file: open as a text file or resource file
Dim doctype, baseFile, attribute
baseFile = ActiveDocument.FullName
doctype = ActiveDocument.Type
DocName = UCase(baseFile)
'#1. 'rc' files
If Right(DocName,3) = ".RC" Then
Dim closeStatus
closeStatus = ActiveDocument.Close (dsSaveChangesNo)
If doctype = "Generic" Then
Documents.Open baseFile, "Text", FALSE
Else
Documents.Open baseFile, "Auto", FALSE
End If
Exit Sub
End If
'#2. Generic CPP/H file
If Right(DocName,4) = ".CPP" Then
fn = left(DocName, Len(DocName)-3) & "h"
ElseIf Right(DocName,2) = ".H" Then
fn = Left(DocName, Len(DocName)-1) & "cpp"
ElseIf Right(DocName,4) = ".HPP" Then
fn = Left(DocName, Len(DocName)-3) & "cpp"
ElseIf Right(DocName,4) = ".INL" Then
fn = Left(DocName, Len(DocName)-3) & "h"
ElseIf Right(DocName,4) = ".TLI" Then
fn = Left(DocName, Len(DocName)-3) & "tlh"
ElseIf Right(DocName,4) = ".TLH" Then
fn = Left(DocName, Len(DocName)-3) & "tli"
Else
fn = DocName + ".CPP"
End If
fn = HandleMFC(fn) 'To handle some MFC files that are just not matched this way
on error resume next
Documents.Open (fn)
End Sub
Function HandleMFC(fn)
'MFC Specific Handling
baseFile = UCase(ActiveDocument.Name)
'strMFCInclude = "C:\Program Files\Microsoft Visual Studio\VC98\MFC\Include\"
If baseFile = "DLGDATA.CPP" Then
HandleMFC = strMFCInclude + "AFXWIN.H"
ElseIf DocName = "" Then
HandleMFC = fn
Else
HandleMFC = fn
End If
End Function
ReplyA much simpler approach - just a single line
Posted by Legacy on 09/23/1999 12:00amOriginally posted by: Stefan Tzanev
ReplyWhat if the .RC file doesn't exist?
Posted by Legacy on 01/29/1999 12:00amOriginally posted by: Bob Paksi
Great time saver of macro. However, I have a project that creates a library and doesn't have an associated .RC file. If this project is active and I use this macro (which I mapped to a button on the tool bar)DevStudio crashes. It seems that Documents.Open <PathName> crashes if the <PathName> doesn't exist. I did a search of DevStudio's object modal but didn't find any Exists() method. Any ideas?
Reply