ne555 is trying to tell you that there's a forum right here for Windows and that you should post there. Even if you are a beginner, your question is about programming for Windows and not some simple C or C++ concept, which is what the Beginners forum is for.
You can move your questions yourself to the Windows forum by editing the post.
As for your question in particular: You may be trying to create a combobox that probably needs to tell the user "--Select One--", right? If so maybe making the option unselectable is not the way to go. Maybe you can take a simpler approach of just validating the choices in the dialog box to see if a valid option was selected, and if it is not the case simply inform the user about the fact.
Personally I've never seen any. Can you give concrete examples to see if we can check them out?
Since you seem to be unwilling to follow alternative methods to accomplish your task, I can only think about subclassing the combobox control to try to gain control over what can and cannot be selected. I think that maybe subclassing the underlying listbox is the way to go. Process WM_NCHITTEST. If it is HTCLIENT and happens to be on top of the first item, see if you can get your desired result by returning HTBORDER instead.
Subclassing is the process of deviating the flow of window messages to a new window procedure. This is done for a variety of reasons, but the chief reason is the alteration of some stock behavior. In your case you want to alter the behavior of the stock combobox by disallowing the selection of one of the items.
A window procedure's entry point's address is stored with the individual window (all controls are windows) and can be retrieved or overwritten using GetWindowLongPtr() and SetWindowLongPtr(). The process of subclassing consists of a few simple steps:
1. Retrieve the current window procedure's address using GetWindowLongPtr(). Store this value for future use.
2. Set a new window procedure by using SetWindowLongPtr().
That's it. Now the window is subclassed and all window messages (notifications as they are called in MSDN) are diverted to the new window procedure, which is one you write.
Inside your new window procedure you only write code for the window messages you want/need in order to accomplish your task. All other messages are redirected to the original window procedure (whose address was stored in step 1 above) using CallWindowProc().
That's subclassing in a nutshell. In order to grasp this concept you must be familiar with the traditional paradigm for Windows Programming, which is a message-driven paradigm.
All messages must be processed. Will you re-write every behavior of the combobox? The answer is NO. You are only interested in re-write the behavior of a very specific thing, not everything. By everything I mean everything: Making the list visible, calculating scrollbars, adding visual mouse-hovering effects, drawing the combobox, sending notifications to the parent window, etc. etc. etc. If this actually had to be done, then Subclassing wouldn't exist as it would provide nothing useful.
So you process the messages related to the behavior you want to change and then simply redirect all others to the original window procedure.
Subclassing is not a trivial topic. You seem to lack the mastery required to understand it. Your next move should be to study how Windows works and how windows receives messages. Once you grasp the concept well, you can start studying subclassing. I cannot possibly explain subclassing in a few forum posts so it is best if you look up tutorials and then just clear any doubts after reading here in the forum.
To try to answer your question (although I'm unsure if you'll understand without studying): You cannot do it in the original window procedure because you did not write the original procedure for the standard combobox. That window procedure was written by Microsoft personnel and it is stored in user32.dll (most likely). You MUST write a new window procedure for your combobox in order to alter its stock behavior. This is the core of the subclassing technique. Is this any more clear?
Yes, if you subclass the combobox you'll be replacing the Microsoft-provided window procedure for the combobox class with one of your own making. Your new window procedure for the combobox will only process those messages required to achieve your goal and then you'll redirect all other messages to the original window procedure for the combobox class so you don't have to basically re-create the combobox in its entirety.