Home > Community > 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

Font installation on Windows Vista/7/8

Status: New
by Active Participant tstanley on ‎04-30-2013 10:02 AM

It appears that when adding a font to the installation package by having the installer copy the font file to the [Fonts] installation directory, all the installer appears to do is copy the font to the C:\Windows\Fonts directory.  This is good enough for Windows XP, but in later versions of Windows additional steps must be performed for the font to be recognized by Windows.  It would be nice if the installation package could perform these steps when installing fonts on these versions of Windows.

When working on laptops the room space in the UIR editor is relatively small compared to the size of actual wide desktop videos. Moreover, starting from CVI 2010 the user interface browser consumes additional room to the right of the editor, thus leaving only a few space to design/review panels.

It would be a good addition the possibility to preview an entire panel on the screen, with the ability to zoom in and out so that one can have an idea of the final aspect the panel will have.

Doing a CTRL+F and finding all instances of a word works, but is a lot of steps.  I tend to use Notepad++ a lot for my IDE and it has this really handy feature.  If you double-click a word, it will highlight that and all other instances of that word inside that one open file.  This is like a "quick find" that saves a lot of time.  See attached image to get the idea.  The darkest highlight is the one instance that was double-clicked.

function list

Status: Already Implemented
by Active Participant ElectroLund on ‎04-15-2013 12:18 PM

I would like to suggest a function tree view in CVI.  I feel this is sorely missing.  Many times, I want to jump right to a function, but I don't remember where it is.  In a single C file with 1,000+ lines, this can be very aggravating.


For this reason, I tend to use Notepad++ for the heavy lifting, along with the Source Cookifier plugin.  See attached screenshot of that plugin.


There are options in the plugin to enable certain features, such as the global and local variables in addition to the function names.  When you are inside a function in the souce editor, the tree updates with a selection to show that you are inside that function.  This is very helpful with functions that have more lines than available veritcal screen space.  This way, I don't have to scroll up to see what function I'm looking at.  I simply look at the tree with a glance and I know.

Status: Already Implemented
We implemented this in CVI 2013.

Improved tooltips

Status: Under Consideration
by Trusted Enthusiast on ‎04-09-2012 12:24 PM

I am happy to see that the suggestion of integrating the tooltips into the UI editor was successful. Now I would like to see better, more powerful tooltips Smiley Happy


In particular, I suggest


  • adding another tooltip attribute allowing the tooltip to disappear automatically after a given time (default of say 3-5 seconds); hence the tooltip would show up with the tooltip delay, show for this specified appearance time, and then disappear automatically. I think that this is the most frequently encountered behavior in other programs. Setting this attribute value to 0 or -1 would imply "show infinitely long"
  • adding an attribute TOOLTIPS_WIDTH that would allow for automatic linebreaks, similar to the behavior found in textboxes. Right now, tooltips get infinitely long if no line breaks are inserted manually. Linebreaks, however, depend on font size etc... The width should be specified in pixels (possibly with a default of say 400)
  • adding an attribute TOOLTIPS_WRAP_MODE, specifying the wrap mode (character/word/...) as in textboxes
  • the possibility of simple text formatting, such as bold or italics. For illustration have a look at the CVI UI editor control panel, e.g. of a text box. Click on the question mark in the upper right corner of the window and then on e.g. line mode: This shows a nice example of what I would like to have to better explain different options (of say a ring control) in a clear way
  • additional tooltips for column headers, row headers, even for every cell of a table: Tooltips of a complete table control may not always be useful, while I have several scenarios in mind where these added tooltips would be most useful: - explain the table columns: typically, due to space constraints, table headers are pretty brief and so extra information could be provided via tooltips for each individual column header. - if a table gets larger and is scrolled, table headers disappear: One could use tooltips (per column) to remind the user what he is actually seeing in column 17...


Thanks Smiley Wink



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.



It seems that one cannot cut/copy/paste menu items between multiple menubars.  If I copy an item in one menu bar, exit the 'Edit Menu Bar' dialog, then open the 'Edit Menu Bar' dialog for another menubar the paste buttons are dimmed.  It would handy at times to be able to do this.  Thanks.

Quickly Find And Open Files

Status: New
by Member Johannes_T on ‎03-13-2012 04:20 AM


Quickly find and open a file in your projects by typing in substrings of the name of the file.



Implement a quick way to find files in a CVI project, by typing substrings of the filename.

A certain keystroke combination should launch a popup-dialog (similar to the picture below), displaying the user a list of files that contain certain substrings. This helps significantly when having to deal with large projects containing many files.


Find File

Provide opacity attribute for graph elements

Status: New
by Trusted Enthusiast on ‎03-24-2013 07:27 AM



building on this suggestion of Bertrand I'd like to extend it as follows:


Please provide an opacity/transparency attribute not only for xy plots, but also for graph annotations (texts, glyphs), PlotLine, PlotRectangle, PlotText etc.

The active configuration (Debug, Release, custom ones, ...) is shown in the bottom-right corner of the status bar (see attached config01.jpg).

I think that it would be better if this would be a menu ring that can be used to change the active configuration, without having to select Build >> Configuration >> xxxx (see config02.jpg)



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.


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


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,



Editting Tab Order and dimmed controls

Status: New
by Active Participant tstanley on ‎02-21-2013 10:56 AM

It would be nice if the "Editting Tab Order" window could change the order of dimmed controls like in previous versions of CVI.  Thanks.

Request for ssh CVI library

Status: New
by Member bfarnham on ‎02-01-2011 11:50 AM

In previous applications, we would talk to our product using a telnet session.
CVI has libraries to do this, such as...


ConnectToTCPServer ((unsigned int *)&g_ShelfHandle[iSocketNumber], 23, sAddress, com_ClientTCPCB, NULL, 0);                                                                   

In one of our new products, it only supports "ssh" which is similar to telnet, but is a "secured shell" connection.
One option is to use putty:  http://digital.ni.com/public.nsf/allkb/C49602A79827DDBE86256CE9005757D5?OpenDocument




It is not the most straightforward way of doing things, but at the moment, it is what we have to deal with.

Since the ssh protocol is becoming the new standard in communications (used in all Linux machines, and windows), and most
of the new telnet programs (supporting ssh), I would like to request that a CVI library be created to support this protocol.








The additional columns of a tree can be hidden using SetTreeColumnAttribute() with ATTR_COLUMN_VISIBLE parameter. This is an easy and effective way.

For a table this attribute isn't supported, so you can use some workaround that requires more coding and have some disadvantages (for example if you set the width to the minimum value of 1, the user can increase it with the mouse...).

I think that the ATTR_COLUMN_VISIBLE parameter would solve this needs in the perfect way.

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.

SetAnnotationAttribute permits you to pass -1 in AnnotationIndex parameter to apply the attribute to all annotations on the graph, while SetCursorAttribute does not. It would be good that this command too permits someway to operate on all cursors in a single pass.


As an example, when I want to print a graph on a black-and-white printer I prepare the control for this changing all elements to black. 

I can use a single instruction for annotations:

   SetAnnotationAttribute (panelHandle, PANEL_GRAPH, -1, ATTR_ANNOTATION_CAPTION_COLOR, VAL_BLACK);


On the other hand, I need to iterate on all elements for cursors

   GetCtrlAttribute (panelHandle, PANEL_GRAPH, ATTR_NUM_CURSORS, &numCursors);
   for (k = 1; k <= numCursors; k++) SetCursorAttribute (panelHandle, PANEL_GRAPH, k, ATTR_CURSOR_COLOR, VAL_BLACK);


Graph legend

Status: New
by Member Domp on ‎05-13-2014 01:07 PM


Could you please increase the number of characaters in the graph legend ? 30 characters is so small...


Best regards.

There is an option to display the default display format for integers and floating point, but no such option to set the default format for
"String Display" or "Array display". Strangely, "Array display" shows my arrays as decimal numbers even though I have the default display format for integers set to Hex.

Ideally, I would like to be able to set them separately for char and unsigned char strings. For example:
                char strings I prefer to display as Ascii, null-terminated strings (the current default).
Unsigned char strings I prefer to display in Hexadecimal, with Options==Display Entire buffer. This is because my unsigned char strings are actually arrays of bytes.

I've been using CVI for a long time and it's frustrating to setup these options each and every time I look at one of my unsigned char strings. Even if it can't be setup separately for signed/unsigned  chars, I would like the option to set some sort of default.


Another aside, would it be possible to display the array/string as hex characters with the Ascii equivalent just below it? A dual display would be even nicer!

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
User Kudos Count