DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Visual Basic 4 / 5 / 6 (http://www.daniweb.com/forums/forum4.html)
-   -   Adding controls into a ListView (http://www.daniweb.com/forums/thread7891.html)

red_evolve Jul 8th, 2004 1:40 am
Adding controls into a ListView
 
Greetings.
I have searched high and low for the above topic but to no avail :confused:
Is it possible to add a combo box into one of the columns of a listview control?
Please advise.

cypher Jul 8th, 2004 2:40 am
Re: Adding controls into a ListView
 
It is possible. Look into the API "SetParent"

You might want to download the API-Guide Network. (Sorry, can't recall the URL off hand)

red_evolve Jul 8th, 2004 4:04 am
Re: Adding controls into a ListView
 
Greetings.
Hey, thanks so much for the "direction".
Did a search in google and I guess I've got a rough picture already.
I'll come back with codes when I'm stuck. ;)
Thanks a lot!

red_evolve Jul 8th, 2004 11:26 pm
Re: Adding controls into a ListView
 
Greetings.
Right, I have came up with a few lines of codes.

I have 6 rows in the listview, and I need to add 1 comboBox to each row at subItem number 2.
At runtime, I could see 1 comboBox at row 1.
I guess all 6 combo boxes are piled up there. :D

    Do Until myRS.EOF = True 
        Set objItem = listviewEIP.ListItems.Add(, "A" & myRS!com_code, myRS!com_name)
        objItem.SubItems(1) = "Something"
        objItem.SubItems(3) = "Anything"
        myRS.MoveNext
    Loop

    comboID(0).Visible = False
    With listviewEIP.ColumnHeaders
   
        Load comboID(1)
        Call fillCombo(1)
        comboID(1).Top = listviewEIP.ListItems.Item(1).Height
        comboID(1).Left = .Item(3).Left
        comboID(1).Width = .Item(3).Width
        comboID(1).Visible = True
        SetParent comboID(1).hWnd, listviewEIP.hWnd
        comboID(1).ZOrder
           
        For i = 2 To 6
            Load comboID(i)
            fillCombo (i)
            comboID(i).Top = listviewEIP.ListItems.Item(i - 1).Height
            comboID(i).Left = .Item(3).Left
            comboID(i).Width = .Item(3).Width
            comboID(i).Visible = True
            SetParent comboID(i).hWnd, listviewEIP.hWnd
            comboID(i).ZOrder
        Next i
    End With

How can I solve that? Please help.
Thanks.

cypher Jul 9th, 2004 6:22 pm
Re: Adding controls into a ListView
 
Well, looks like you have the right idea for the SetParent API. In all honesty, I've never tried adding controls to a list view or anything else that has multiple places to put them (aside from a toolbar, but that's slightly different).

You might try to find a way to address subItem2's handle. Every control in Windows has a control (or atleast has the opportunity to apply for one). If you want to think about it in a very basic concept, imagine everything is a picturebox, except not everything has a Picture property. From there, you can see that everything has a Height, Width, and Handle. Beyond that, the controls just add their own properties as needed.

So if you can find a way to retrieve subItem2's hWnd, then you should be in business.

red_evolve Jul 11th, 2004 9:22 pm
Re: Adding controls into a ListView
 
Greetings.
Ok, I got you.
By the way, I could not fully understand wat does hWnd do.
Could you please explain a little if possible?
In addition, I tried using the combo box's Height property but there is an error stating that combo box's height is read-only, n thus I can't use that parameter to do things with it. I'm not modifying the parameter, but I just want that value.
Please advise.

mnemtsas Jul 13th, 2004 8:55 pm
Re: Adding controls into a ListView
 
Quote:

Originally Posted by red_evolve
Greetings.
Ok, I got you.
By the way, I could not fully understand wat does hWnd do.
Could you please explain a little if possible?
In addition, I tried using the combo box's Height property but there is an error stating that combo box's height is read-only, n thus I can't use that parameter to do things with it. I'm not modifying the parameter, but I just want that value.
Please advise.

Try taking a look at http://www.vbaccelerator.com . He has a whole pile of stuff there about sub classing and so on. In fact I'd be amazed if his freely downloadable enhanced listview didn't already do exactly what you want.

cypher Jul 15th, 2004 1:49 am
Re: Adding controls into a ListView
 
Quote:

Originally Posted by red_evolve
Greetings.
Ok, I got you.
By the way, I could not fully understand wat does hWnd do.
Could you please explain a little if possible?

Everything in windows is an object. Whenever an object is created, it is given a handle by which windows (or any other program that has access to that handle) can address that object. Forms and controls both have handles, although not all controls register to receive them. That's basically what the hWnd (Some weird way of saying handle for a Window.

red_evolve Jul 15th, 2004 2:36 am
Re: Adding controls into a ListView
 
Greetings.
Thanks for the url, mnemtsas! Can't really get what you meant by this though:-
Quote:

In fact I'd be amazed if his freely downloadable enhanced listview didn't already do exactly what you want.
Well, I've browsed thru vbaccelerator , I found something about subclassing.
[1] Add a Check Box to the Left Hand Side of a Drop-Down Combo Box (Currently looking into this as I guess the concept is quite similar.)
[2] Detect when a Combo Box Drops Down or Closes Up (This is indeed very confusing for me!)
Cypher, thanks a lot for the explanation! Understood, but now's time to apply the theory (toughest part! :sad: ).


All times are GMT -4. The time now is 11:11 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC