LabWindows/CVI Idea Exchange

Community Browser
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.

Showing results for 
Search instead for 
Did you mean: 
Post an idea

As can be seen here, "Save changes" items in Environment options are global to the CVI IDE.


I suggest these options are made project-specific instead. The rationale behind this suggestion is simple: suppose I am developing project A and I enable autosave modifications before compiling and running the project; at the same time I may need to look at the code for project B already deployed to customers, and I want to prevent modifications to the code without notice. At present, while I am testing the application A I set these options to "Always"; if next I come and see the code for project B, I may accidentally make (and save!) modifications that change the code of the deployed app without notice Smiley Sad

If these options were per-project I would be granted I am not making mistakes.Smiley Happy


Data Tooltip should also display the name of the function, when displaying the value of a function pointer variable.



While debugging a CVI application, when hovering the mouse cursor over a function pointer variable, the Data Tooltip displays the address of that function, referenced by the variable.

It would be very useful in cases when you have multiple function pointer variables referencing several different variables, to have the Data Tooltip not only display the address of those functions, but the name of the functions as well.


Data Tooltip With Function Pointer


This issue is that old that we all forgot about it... Smiley Wink


But this thread brought it back to my attention and I'd like to suggest two improvements:


Setting the width or the height of a control does not always succeed because there are limitations concerning the minimum and maximum size.


Suggestion 1:


If a function fails it should return a warning. However, calling e.g. status = SetCtrlAttribute ( panel_handle, PANEL_RING, ATTR_WIDTH, 5 ) returns success (0) even though the width of the ring control will be much larger than 5 pixels. For checkboxes, the situation is even worse because checkboxes are drawn right aligned to a transparent rectangular frame. So calling status = SetCtrlAttribute ( panel_handle, PANEL_CHECKBOX, ATTR_WIDTH, 500 ) will result in a transparent drawing rectangle of width of 500 but with the checkbox size remaining at the default size. Since the checkbox is drawn right aligned to this transparent frame the checkbox eventually may disappear from the panel (setting the width to say 10000 will not draw anything).


Suggestion 2:


Complement the documentation, the idea is given below:


Constant: ATTR_WIDTH
Data Type: int
Description:  The width of the control body in pixels.
Valid Range: 0 to 32767
Control Type Restrictions: Not valid for controls of type CTRL_VERTICAL_SPLITTER and CTRL_VERTICAL_SPLITTER_LS

For checkboxes, the minimum size is ... pixels, and the maximum size is ... pixels.

For ring controls, the minimum size is ... pixels.

LabWindows/CVI Compatibility: LabWindows/CVI 3.0 and later

Control Types:  All

When operating graphs in Labview, it is easy to change the scale of an axis of a graph (at runtime): to change e.g. the maximum value, you select the current maximum value with your mouse, type in the maximum number you want and hit enter. To achieve the same in Labwindows, you have to use a numeric control and a button, which is a bit cumbersome. The same applies for zooming: In Labview, you can click a small button attached to the graph and select the way you want to zoom, and then just use the mouse. In Labwindows, you have to know that zooming is done using the ctrl button, ctrl+space restores the previous setting, etc. It would also be nice to be able to enable autoscale by right-clicking on an axis and having a popup menu which allows to do so (just like in Labview). And if the user changes e.g. the maximum value while autoscale is enabled, it would be nice to automatically disable autoscale (unlike in Labview).


So in general, it would be nice to have more comfort in operating graph controls.




Improve the Breakpoints Window, so that breakpoints can be more easily managed.


1. Change the Breakpoints Window, from a modal dialog to a dockable window (similar to the Watch Window). Debugging can be more easy this way.

2. Allow breakpoints to be grouped, disabled/enabled and edited in user defined categories. This allows users to easily collectively manage several breakpoints at a time. It also helps the user to logically group breakpoints, depending on various issues issues that he might be working on.

3. Breakpoints could also be sorted from a pop-up menu by filename, line, hit count, etc.


Breakpoints Window

Add an attribute for LabWindows/CVI panels for setting transparency.


Currently, in order to achieve this behaviour users are forced to workaround this using Windows API.

Having an attribute for this purpose would allow users to benefit from this functionality more easily and would make LabWindows/CVI programs more cleaner.


Related forum discussion:

I know we used to have this web server feature 6-7 years ago.

I would request a function where we can export designated panel which user can control from web. Also provides an option to have read only or read/write access. Also password options.


Something like this.


ExportPanelToWebServer (panelHandle, READ_ONLY_FLAG, PASSWORD_FLAG, PASSWORD);

//This starts web server automatically and ready for connection on port 80.


This opens door to lots of applications which requires web control. I think LabVIEW has similar feature. (Web publishing tool)

As suggested by Daniel (D-Cubed) an improved version of GetCVIVersion is needed in order to determine the patch level programmatically. Right now, no simple approach exists for an executable to determine if the CVIRTE is a patched version or not. For example, GetCVIVersion returns 1300 both for the patched and the unpatched 2013 release.



If you open a project with many sources and edit a file named zero.c, it takes ages until the browsing information for this file is created.


Suggestion: prioritize (all) opened source files when gathering the browsing information.

If the thread that FileSelectPopup (and similar) is accessed is multithreaded, wacky things happen. The programmer can fix this by creating a new thread that is itself not multithreaded and pass information back to the current threrad. It would be helpful if the current functions were designed to default to create such a thread,  return the value(s), and garbage collect removing the programmer from the loop.


In the case of MultiFileSelectPopup, it is not clear to me what would be the best practice given the unknown number of results. I guess one could assume a limit for the number of results that may change as the Windows API does.


Other possible solutions can include an added parameter (variable switch) or with a whole new function. I could see the default case as an effective solution for legacy code that is partially refactored for multithreaded performance.

Please conisider supporting multi-touch screen gestures in a similar manner to the mouse events.  Windows 7 Mulittouch capabilities are a good place to start.


The GUI of the future will most certainly be touch screens, and users expect to be able to use gestures such as pinch, fling, spread, rotate, etc.





we are daily dealing with "constant name" field's values that canNOT exceed 21 characters due to restriction on labwindows/CVI.

even the latest CVI/2009 SP1 v9.1.1 (450) has this restriction.


this is very tedious because our software makes use of this value to make cross searches in the registers' table of our component.

as such, if the "constant name" field's value must be trimmed down to <=21 chars to comply with CVI restriction above, this makes the cross-search unusable.


please increase this limit up to 32 chars (at least).


Pascal Janin

STMicro Grenoble France.



imho the nice tool tips feature provided by the Programmer's Toolbox leads a miserable existence, because it is extra effort integrating it into a GUI.


I would love to see the tool tips integrated into the IDE, that is, when editing a control in the GUI editor, I would like to be able to also set the tool tips text and if it is initially enabled, just like it is possible to enter a control label text. This would include moving the tool tips from the Toolbox to the regular user interface library.


Many Thanks!



When building a project consisting of many files it would be much more convenient if the Build Output would jump to the line with the first file showing an error (or, if no error occurred, to the first warning).


Right now, if there is a build error I have to scroll through the (possibly long) list of files to see which file produced the error; only then I can click on the error message to have the IDE highlight the problematic line.



I would like to have the possibility to store the uir-file not as a tui-file (old-fashioned ini file), instead as a xml file.

Even after using CVI for many years I still find the DirSelectPopup confusing, because it provides a file selector, displays files, and even allows to select files...


I would prefer an improved/modified function such that the DirSelectPopup only shows directories, does not provide a file selector, etc.... This should make it much more obvious that one is selecting a directory, not a file...



Similiar to LabVIEW, I would like to have a "save as" option to store all files within the prj-file to a new location (maybe also for store a cws, res all mentioned prj-files).

Would make it easier to handle over a CVI-project.

Currently, there is no way to access the historical data on a stripchart.  The only way to manage this data is to maintain a separate buffer and update it whenever you add data to the strip chart, which is inefficient and tedious. Accessing data is possible for graph controls using the data attribute:


GetPlotAttribute (panel, PANEL_GRAPH, plotHandle, ATTR_PLOT_XDATA, &data);

 Something similar should be implemented for the strip chart, either as an attribute in the getTraceAttribute function, or as a standalone function (getTraceData, etc.)

If you have, say, three controls called MAX_1, MAX_2, MAX_3 arranged vertically. If I select them all, copy and paste, the new controls appear as MAX_4, MAX_5 and MAX_6 but in the wrong order to what you would expect.















A similar issue occurs with assigning a group of controls to a control array, they always seem to be in the wrong order, usually reversed.

Seriously, NI should look over the newer Visual Studio IDE's as well as NetBeans for some good ideas ...


Here's a few:


1.  When using the F2 function to find a previously marked spot, you can't easily look for the next bookmark going backwards or restricitng the search to the current module.  You can in Viusal Studio.

2.  There's no clue offered for the extent of a block - other IDE's either backlight the match braces (VS 2008) or draw vertical lines showing the block extent (a popular VB add-in tool does this).

3.  Refine the search selection to be current module, current project, or current workspace ...

4.  Allow concurrent builds of multiple projects within a workspace - VS 2008 allows this, in fact, the default is to build everything in the current solution (solution = workspace).

5.  Allow toggled commenting of multiple lines of selected text, rather than the "exclude" option that won't let you save excluded lines without commenting them - then the IDE lets you comment them, but not until then.  Same thing with un-comment.

6.  Implement a lazy background re-compile that re-compiles as you type - saves you a jillion CTRL-K keystrokes to do it yourself.  Couple this with near real time notification of compile errors as you type.

7.  Fix the &*!)$@^ CVI linker to allow 16 byte alignment.

8.  Implement full C99 (MS hasn't done this though and apparently never will).

9.  Dim conditionally compiled source that isn't going to compile - nothing is more irritating to me when editing than forcing yourself to ignore conditionally compiled code that's not going to compile.  It's tricky to make this work right but it'd stil be worth a try.  VS 2008 kind of does this.

10. Provide a pull down menu of functions within a module - this is better than the CVI source browser which is a PITA to use - ti's no wonder to me that this is the most requested improvement so far.