The following content applies to vs2005sp1 and later versions.
Tool> macro resource manager,
In the macro Resource Manager window, right-click the macro node and select the new macro project.
Select a macro project, name it "intelliisense", and then add,
Rename the automatically added module1 as the intelliisensemodule.
Right-click intelliisensemodule and choose edit,
Paste the followingCode:
Imports system </P> <p> imports envdte </P> <p> imports envdte80 </P> <p> imports system. diagnostics </P> <p> Enum isense_flags </P> <p> isense_normal = 0' normal (intelliisense on) </P> <p> isense_nobg = & H1 'no BG parsing (intelliisense updating off-although NCB file will be opened R/W and repersisted at shutdown) </P> <p> isense_noquery = & H2 'no queries (don't run any isense queries) </P> <p> isense_ncbro = & H4 'no saving of NCB (must be set before opening NCB, doesn' t affect updating or queries, just persisting of NCB) </P> <p> isense_off = & H7 'no BG parsing, no queries, no saving of NCB, NCB will still be opened, however </P> <p> end Enum </P> <p> Public module intelliisensemodule </P> <p> sub intelliisense_noupdate () </P> <p> DTE. properties ("texteditor", "C/C ++ specific "). item ("intelliisenseoptions "). value = isense_flags.isense_nobg or isense_flags.isense_ncbro </P> <p> end sub </P> <p> sub intelliisense_off () </P> <p> DTE. properties ("texteditor", "C/C ++ specific "). item ("intelliisenseoptions "). value = isense_flags.isense_off </P> <p> end sub </P> <p> sub intelliisense_on () </P> <p> DTE. properties ("texteditor", "C/C ++ specific "). item ("intelliisenseoptions "). value = isense_flags.isense_normal </P> <p> end sub </P> <p> sub intelliisense_status () </P> <p> dim X </P> <p> X = DTE. properties ("texteditor", "C/C ++ specific "). item ("intelliisenseoptions "). value </P> <p> dim result </P> <p> If x = isense_flags.isense_normal then </P> <p> result = "intelliisense on" </P> <p> elseif x = isense_flags.isense_off then </P> <p> result = "intelliisense off" </P> <p> else </P> <p> If X and isense_flags.isense_nothen </P> <p> result = "no background parsing. "</P> <p> end if </P> <p> If X and isense_flags.isense_noquery then </P> <p> result = Result +" No intelliisense queries in IDE. "</P> <p> end if </P> <p> If X and isense_flags.isense_ncbro then </P> <p> result = Result +" no saving of NCB file. "</P> <p> end if </P> <p> msgbox (result) </P> <p> end sub </P> <p> sub deletencbandreload () </P> <p> dim name </P> <p> dim namesln </P> <p> namesln = DTE. solution. fullname () </P> <p> If Len (namesln)> 4 then </P> <p> name = left (namesln, Len (namesln)-4) &". NCB "</P> <p> If msgbox (" This may take a while. closing solution, deleting "& name &", and reopening solution. ", msgboxstyle. okcancel) = msgboxresult. OK then </P> <p> DTE. solution. close () </P> <p> kill (name) </P> <p> msgbox ("NCB deleted", msgboxstyle. okonly) </P> <p> DTE. solution. open (namesln) </P> <p> end if </P> <p> else </P> <p> msgbox ("no solution is currently loaded. ", msgboxstyle. okonly) </P> <p> end if </P> <p> end sub </P> <p> end module
File-> close and return,
Right-click the intelliisense macro and choose set as record item.
Tool> Custom> toolbar> new,
Enter a name you like.
Command tab-> category-> macro,
Drag and Drop the five names starting with intelliisense to the toolbar you just created.
Right-click the button to rename and change the icon.
Functions of each button:
Intelliisense on returns to normal state, enabling intelliisense;
Intelliisense off most intelliisense functions are disabled, which is almost the same as renaming feacp. dll;
Intelliisense noupdate disables automatic updates to the intelliisense database;
The intelliisense status displays the current state of the settings;
Deletencbandreload closes the solution, deletes the NCB file, and reloads the solution.
Note:
Practice has proved that noupdate is better than off;
The modification of each button is permanent and has nothing to do with the solution;
When no solution is loaded, the modification is invalid.