-
September 26th, 2009, 02:48 AM
#1
Custom CComboBox
Well I posted about my problem while back and got no help so I started researching and I'm getting where I need to get.
The problem I'm having and maybe cause it's getting late but I have the ComboBox with an 'x' on the button and now I have it where it doesn't drop down the listbox when the button is pressed. But it drops it down when you click the CEdit ctrl of the ComboBox. I do have a handle to the Edit ctrl of the combo. And I have it setup where you can type by overriding the WM_LBUTTONDOWN and not calling the base class but when the mouse is over the CEdit control it still loads the I-Cursor until I leave the CEdit.
I tried overriding the WM_MOUSEMOVE and calling SetCursor and it works but it flashes too much and is irritating. So I'm sure there is an easy answer to this does anyone know it is the question?
-
September 26th, 2009, 04:46 AM
#2
Re: Custom CComboBox
Originally Posted by left1none
Well I posted about my problem while back and got no help so I started researching and I'm getting where I need to get.
Could you provide a link to this thread where you already "posted about my problem ..."?
Otherwise your current description is absolutely unclear!
Victor Nijegorodov
-
September 26th, 2009, 01:54 PM
#3
Re: Custom CComboBox
Originally Posted by VictorN
Could you provide a link to this thread where you already "posted about my problem ..."?
Otherwise your current description is absolutely unclear!
I have solved many of the issues in the original post thought but I'll post the URL so you can see. The problem at hand is the Cursor and keeping it an arrow.
http://www.codeguru.com/forum/showth...lass+CCombobox
-
September 27th, 2009, 02:40 PM
#4
Re: Custom CComboBox
Is it possible at all? I mean I know it has to be.
-
September 28th, 2009, 08:15 AM
#5
Re: Custom CComboBox
I'm not sure if this will work, but, have you tried subclassing the embedded CEdit control and handling WM_SETCURSOR?
Gort...Klaatu, Barada Nikto!
-
September 28th, 2009, 08:43 AM
#6
Re: Custom CComboBox
Since you want to disable the I-beam cursor, can I assume you don't want the text to be editable and are disabling its editability? Why not use a Drop List style so that the main part of the combo is a static rather than an edit?
-
September 28th, 2009, 09:14 AM
#7
Re: Custom CComboBox
To follow Hoxsiew's theme, you can make the embedded CEdit read-only if you don't want to allow edits. That would change the cursor.
Gort...Klaatu, Barada Nikto!
-
September 28th, 2009, 11:14 AM
#8
Re: Custom CComboBox
Custom (or owner) drawing is all nice and dandy as long as what you're trying to do is 'within reason' and you aren't trying to change too much of the behaviour of the control you're trying to customize.
The description on the other page isn't entirely clear, but I'm getting the impression you're not really trying to get a custom combobox. But what you really are looking for is a display-text-box-with-a-button (?).
- you don't want the drop down
- you don't want the editing part of the combobox
all you want is a combined readonly edit with button.
When you want to customize a windows control, you really need to look for a control (or a combination of controls) that already DOES what you want, not one that LOOKS more or less like what you want.
You can 'easily' mold the looks, but changing behaviour is harder and more specifically a lot harder if you want your program to work with future versions of windows without having to do extensive rewrites.
If what you want is indeed a displaybox-with-a-button I'd suggest making a custom control, rather than trying to customise an existing "looks somewhat like what I want" standard control.
In this case, the edit-with-a-button is fairly easy to do by subclassing an editbox and make it have a child button. or even just have an editcontrol and a separate button that have interoperability.
-
September 28th, 2009, 04:43 PM
#9
Re: Custom CComboBox
Let me try and help you help me here.
Originally Posted by Mike Harnad
To follow Hoxsiew's theme, you can make the embedded CEdit read-only if you don't want to allow edits. That would change the cursor.
Well I actually tried this before, making the edit read only and it still changes the cursor to the I-beam it just doesn't let you edit the contents.
Originally Posted by OReubens
If what you want is indeed a displaybox-with-a-button I'd suggest making a custom control, rather than trying to customise an existing "looks somewhat like what I want" standard control
well do need a drop-down. See this will be used to manage several windows (3 different documents actually and many possible open documents of each doc template). So basically the edit control will hold the currently viewed doc and when you click the edit it will drop down a list of all other open documents that you will be able to click on to bring that window to the front or you can close them from there.
Now I did think maybe the easier and better way was to use a CEdit with a CButton and when you click it it will drop a CMenu. Does this make more sense? Maybe so cause really I have thought about not using the CListBox and using a CMenu on this one actually. I'd love to hear more about this.
Originally Posted by Mike Harnad
I'm not sure if this will work, but, have you tried subclassing the embedded CEdit control and handling WM_SETCURSOR?
Wow thanks Mike, I already have it subclassed but never dawned on me to try that. I will venture a guess this will work though. But still interested in hearing about using a CEdit with a CButton still as well. I have learned alot about the CComboBox though. Great learning experience and thank you all for all your help.
-
September 28th, 2009, 04:51 PM
#10
Re: Custom CComboBox
Originally Posted by Mike Harnad
I'm not sure if this will work, but, have you tried subclassing the embedded CEdit control and handling WM_SETCURSOR?
This does in fact work I just tried it. But still curious about using the CEdit instead. The other things I have to handle are...
1) I have to draw 'x' button (close button) on each item that is in the CListBox (or CMenu if I go that route.
2) I have to capture the button click when the closed button is clicked (Already works on the CEdit)
3) it will display the CMDIChildWnd title for the text in the CEdit and in the CListBox (or CMenu) but if the window caption is too large it must only display part of it then using "..." to declare there is more to it
4)Must notify parent when it has changed (should be easy enough)
5) all items must be kept circular. So like there will be an array of Windows titles kept. Say the #2 item of the array is in the CEdit box. The #1 item must be at the bottom of the CListbox(CMenu). If a user clicks the #4 item (which would actually be the #2 item in the list in this case) then it will be in the CEdit and the #5 will be the first in the drop down and #3 will be last #2 second to last and so on....
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|