NI Home > Community > NI Discussion Forums

LabWindows/CVI Idea Exchange

Showing results for 
Search instead for 
Do you mean 
The NI Idea Exchange is a product feedback forum where NI R&D and users work together to submit ideas, collaborate on their development, and vote for the ones they like best. View all of the NI Idea Exchanges to post an idea or add your opinion on an existing one today!
New Idea

Welcome Page : Browse .cws rather than .prj

Status: New
by Member 40tude2 on ‎09-20-2013 01:04 AM


This is a minor thing (I mean aesy to improve)


On the Welcome page when you click the "Browse" folder icon the file dialog looks for .prj by default :



I believe it make sense to look for "Workspace" by default

Doing so one can find out his workspaces directly (NewSamples.cws for example) rather than get the Open File dialog box on screen, then select workspace in the type list then look for his .cws


Does it make sense?

Yes because even single project based project are included in a workspece so it does not change anything for the one looking for "simple" project

Yes because more and more CVI users have more than one project in a workspace and so changing the default behavior will save time (1 or 2 seconds) for most of us.


Regards, Philippe


add the 'view control callback' to menu items from uir editor

saves alot of time for searching the CB manualy in huge projects

project function browser

Status: Already Implemented
by Trusted Enthusiast on ‎11-25-2010 03:28 AM

This is sort of a slight extension of the valuable suggestion by vix (Go to Next/Previ​ous function in source files):


Right now, in the CVI IDE it is possible to have a function tree of all library functions - for larger projects it might be useful to also have a function browser for all the functions in the current project, thus not only permitting to jump to the next or previous function, as suggested by vix, but also to more easily return to a frequently used function by one mouse click on the function name in the function browser.


Functions could be grouped by file name (typically there is more than one source file in a project), or alphabetically...


Make sure ALL the function panels use the right controls 

For example in the CVIDynamicMemoryInfo function panel below, the "Options" parameter should not use the String Ctrl.

Instead it would be "safer" to use a list box, a ring or whatever make sense to display the two available choices :  DYNAMIC_MEMORY_SHOW_ALLOCATED_MEMORY or DYNAMIC_MEMORY_SHOW_ALLOCATED_MEMORY_SUMMARY

This would help to reduce the typo errors etc.

Regards, 40tude


separators in ring control

Status: Completed
by Trusted Enthusiast on ‎11-03-2010 05:31 AM

One nice feature of menu bars is their capability of grouping different items using a separator.


Having ring controls with many text entries it would be nice from a user perspective if these many entries also could be grouped using one or more separators.


What would be also convenient is the ability to dim or hide a specified entry; right now it is possible to rebuild the ring programmatically with one or several entries less (or more), but this is some overhead that could be minimized by simply hiding or showing an indexed entry.

Status: Completed

So far there is no way to take advantage of the CVI  style sheet when embedding HTML tags in the documentation of our functions 

The situation is as follow : 

1 - If the user does not use HTML tags every thing looks good BUT, for example, there is no way to display correctly a sample source code as it is done in the documentation of LoadPanel for example (see below). Same thing for the icons and other cool stuff available in "../cvi2013/bin/libref/tooltp.css"



2 - On the other hand, if the user use HTML tags in the function documentation then the display look "weird" and there is no easy way to improve the display.


My proposals

1 - Alow the users to leverage the .css file that come with CVI. This mean document/explain the style and the ressouces available (icon etc). This also mean that when the users embed HTML tags in the documentation then the help should include the CVI .css file and then the user documentation (like it is done for the CVI function call documentation)

2 - Another option could be to create a new documentation tag that help users to describe their own .css file. The problem here is that it would break the consistency within the documentation. I prefer option one.


I hope its understandable... :-)

Regards, Philippe 


Status: Completed
by Active Participant vix on ‎10-13-2010 01:09 AM

If you have a Numeric Indicator, and you set "Range checking" to Notify, CVI will show an ugly popup when you enter a value out of range.

If you set this property to "Coerce", the value you enter is coerced in range, but no specific event is generated.


I think that an EVENT_VAL_COERCED would be really useful: using this event you could easily show a message popup, for example.

Status: Completed

It would be convienent at times to have a way to know if timer callbacks had been suspended by another part of the program by 

SuspendTimerCallbacks(), or if timers are running again from ResumeTimerCallbacks().  As far as I can tell there is currently no way to know this in CVI without manually keeping track of the last suspend/resume function called.  Thanks.

The functions available today are OK in terms of functionality but limited in terms of syntax/grammar


For example : 

  • No support for multiline patterns
  • No support for '\s' in patterns
  • No support for [:alnum:] in patterns
  • No Posix conformance (ISO/IEC 9945-2:1993 for example)
  • No way to select among various syntaxes (grep, awk, ECMAScript...)
  • At least the ECMAScript grammar should be fully supported


I would like to propose to change the Regular Expression compiler with a brand new one

Keep the existing API (but support much better grammar)

Extend the API of the current intrument driver if needed or if it make sense (a Find/Replace function could be a nice for example)




CVI Application start as service

Status: New
by Member TECHNOFASE on ‎10-03-2012 02:39 PM

Please consider the possibility to make one option to set the application as Windows service, so i can start it on windows server BEVORE the logon is done.

Very usefully !!

Improve auto indent

Status: New
by Trusted Enthusiast on ‎08-23-2013 08:04 AM

As discussed here, the new and nice auto indent feature does not always work consistently. I suggest to improve this:


  • at present auto indent considers the first 40 characters of a line only; if indentation is later, say at column 44, auto indent fails. I suggest to loosen this restriction and consider up to 100 characters
  • at present, different comment styles are treated differently. Although /* */ is THE valid C comment, auto indent can be configured only for the // style comment, it ignores this setting for /* */ comments. I suggest to treat both types of comments the same way




Improved 'Find'

Status: New
by Trusted Enthusiast on ‎09-29-2012 09:15 AM



this is a very tiny suggestion, but still I would consider it a very convenient improvement:


Right now, if I am using the 'Find' command in the IDE with a typo in the search string (this happens frequently...!), press F3, I receive a popup message telling me that the string 'xxx' has no matches. After pressing OK the popup disappears, but also the Find window disappears! So I have to press Ctrl-F again just to correct my search string.


Hence I suggest that in case a search is not successful, (the popup disappears but) the Find window remains open. This is also true if the search was successful, so I would even consider the current behavior inconsistent :smileywink: 



When using the UI functions, a neat feature is the ability to pull up a dialog of valid control IDs when specifying the control:




clicking the elipses displays this dialog showing all valid control IDs:




If you are using the function panel however, you cannot access this dialog and you are on your own for figuring out the correct control ID:




I think we should add this functionality in the function panel for any function that has a control ID parameter.



Save debug information

Status: New
by Trusted Enthusiast on ‎08-16-2013 02:24 AM

CVI2013 does not seem to save debug information, instead it has to generate it every time a project is loaded. For large projects this can take some time...

Prior to CVI2013 we were used to a large *.cdb file with browse information which is now gone.


I suggest to save debug information (function list,...) to a file that is loaded on starting CVI so one can make use of this information 'immediately'.


I do like the improved editor features of CVI2013; maybe two toolbar icons could be added for the two new commands  'Goto Next Function' / 'Goto Previous Function' ?

I added the tab control into panel to my project. Overtime, I added 20 items into the single Tab Control. But since were so many items in the tab control, I decided to re-arrange items (indexes) in the tab control by either moving them left or right depending on the alphabetical order. But here is my problem.


Since I re-arranged the items (indexes), the indexes have all changed for all the items. Now I have to go everywhere the function GetPanelHandleFromTabPage is called and manually update the index numbers to match panel handles for the index. There are 20 different places where this could occur. The number of items (indexes) on the tab control could grow even more and may have to be re-arranged again in the future. Just a big pain.


Suggestion for improvement: Provide a another function that can obtain the index of the item on the tab control dynamically. This could be done by using the "Constant name:" issued in the edit tab panel of the edit tab control. So if the items (index) inside the tab control are re-arranged then the index value for that item is carried with the new index value.


Also the index would be included in the header file generated by the panel editor for CVI so that now the index value can be used thus eliminating the hard coded the index value.



a long standing issue with the function GetGlobalMouseState is that it does not detect the <alt> key modifier (contrary to the documentation).


I'd like to suggest adding the capabilities to detect the key modifiers


  • <alt>
  • <shift> + <alt>
  • <ctrl> + <alt>

Of course this can be done with the Win32 function GetKeyboardState, and this is how I do it right now, but this means that I have to include <windows.h>.



I'd really appreciate a warning for "empty bodies" or whatever it is called, i.e. things like



 If written like

if(...) { };

 it is OK.


Decoration element

Status: New
by Trusted Enthusiast on ‎02-21-2011 02:31 AM



designing a screen layout I frequently encounter the wish to have not only rectangular (and circular) decoration elements, but also one of the type shown below.




Only the upper right rectangular shape can be realized now, while the more complex shape on the left is what I would like to see added in the future.

Instead of two parameters width and height four parameters would be required (two heights and two widths), may be even a fifth parameter specifying the orientation of the shape: as shown, mirrored in x, mirrored in y, mirrored in x and y.


Without doubt grouping control elements is useful; unfortunately these groups may differ in the number and type of control elements.


Thanks for consideration,




Status: Under Consideration
by Trusted Enthusiast on ‎08-15-2012 03:17 AM



following the discussion here it turns out that at present there is some ambiguity in using the taskbar button of applications created with CVI: Clicking on the taskbar button gives the visual impression of minimizing all panels of the application, in fact the panels are just hidden, not minimized. As a result, the application will behave differently if you really minimize panels using the _ panel button, or if you hide the panels by clicking on the taskbar. In the latter case the new EVENT_PANEL_MINIMIZE event does not get triggered and the application cannnot know that all panels are hidden (for the user appearing to be minimized). Hence this new event is required to complement this functionality.

About LabWindows/CVI Idea Exchange

Do you have a feature idea for how to improve LabWindows/CVI? Submit and vote on ideas now!
  1. Browse by label or search in the LabWindows/CVI Idea Exchange to see if your idea has previously been submitted. If your idea exists, be sure to vote for the idea by giving it kudos to indicate your approval!
  2. If your idea has not been submitted click New Idea to submit a product idea. You should submit a separate post for each idea. Watch as the community gives your idea kudos and adds their input.
  3. Give kudos to other ideas that you would like to see implemented!
  4. NI R&D will review ideas that have been submitted and update the status.

Note: the LabWindows/CVI Idea Exchange is not the appropriate forum to submit technical support questions.

The LabWindows/CVI R&D team is committed to reviewing every idea submitted via the LabWindows/CVI Idea Exchange. However, we cannot guarantee the implementation of any LabWindows/CVI Idea Exchange submission.

Top Kudoed Authors