Manage Learn to apply best practices and optimize your operations.

Control IDs in C++ .NET

Why you have to rename objects, and how.

Developing in .NET will cause some new problems and puzzles to crop up. So this tip, excerpted from an article entitled Frequently Asked Questions: C++.NET by Davis Chapman, published by InformIT, takes a look at the need for changing control IDs.

Question: When I specified the object IDs of the controls on the window, three controls had the same ID -- IDC_STATIC. These controls were the text at the top of the window and the two group boxes. The other two static text controls started out with this same ID until I changed them. How can these controls have the same ID, and why did I have to change the ID on the two static texts where I did change them?

Answer: All controls that don't normally have any user interaction, such as static text and group boxes, are, by default, given the same object ID. This works fine as long as your application doesn't need to perform any actions on these controls. If you do need to interact with one of these controls, as you did with the static text prompts for the edit box and the combo box, you need to give that control a unique ID. In this case, you needed the unique ID to be able to retrieve the control object so that you could enable or disable and show or hide the control. You also need to assign it a unique ID if you want to attach a variable to the control so that you can dynamically alter the text on the control.

The application behaves in a somewhat unpredictable way if you try to alter any of the static controls that share the same ID. As a general rule of thumb, you can allow static controls to share the same object ID if you aren't going to alter the controls at all. If you need to perform any interaction with the controls, you need to assign each one a unique object ID.

To read the entire article from which this tip is excerpted, click over to InformIT. You'll have to register to get the article, but the registration is free.

Dig Deeper on Topics Archive

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.