15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


How do I use a check list box?

David Stidolph -- stidolph@magnet.com
Tuesday, January 23, 1996

I am using VC 4.0 and Windows 95.

I want to have a check list box in a dialog.  How do I add one using the =
resource editor?  I know I can create one and add it through =
programming, but I would prefer to do it the "normal" way if possible.

Once I have the control - what mfc function(s) would I use to handle =
checking or unchecking elements within the list?

The point of the exercise is to allow a user to select options and show =
the memory usage for selected options (change a static text field).

Thanks in advance - I know this is a simple question, but I can't find =
much documentation on this control.
-------------------------------------------------------------------------=
-
David Stidolph

Gee that bastard smells. No wonder they call him Pooh. --Chris Robin.
-------------------------------------------------------------------------=
--



Mark Turner -- Mark.Turner@softcare.co.uk
Thursday, January 25, 1996

[Mini-digest: 4 responses]

I had trouble initially with CCheckListBox,=20
eventually I cracked it.....

1. Add a List Box in Resource editor, set its style to OWNERDRAW and =
HASSTRINGS
2. Add a Member variable in Classwizard of type Control & CListBox
3. Edit the Variable in the Header file and change its type to =
CCheckListBox
4. Insert strings into the listbox as normal then Use GetCheck & =
SetCheck to Check/Uncheck your listbox entries.

Hope this helps

//
// Mark.Turner@Softcare.co.uk
//

-----From: Niels Ull Jacobsen 

As the "Checked list box" isn't a standard resource, you can't add it
in the resource editor. I think the easiest way would be to add a
CListBox member variable and then manually change it to be a
CCheckListBox.
 
> 
> Once I have the control - what mfc function(s) would I use to handle =
> checking or unchecking elements within the list?

Use the source Luke!
If you search for CCheckListBox in the MFC source, you'll find it in
winctrl3.cpp. In CCheckListBox::OnLButtonDown (and several other places) you'll
find:
 // Inform of check
 pParent->SendMessage(WM_COMMAND,
   MAKEWPARAM(GetDlgCtrlID(), CLBN_CHKCHANGE), (LPARAM)m_hWnd);

You can catch this in your dialog with a 
ON_CONTROL(IDC_MYLISTBOX, CLBN_CHKCHANGE, OnMyListBoxChange)
in your message map.

You can use GetCaretIndex() to find out which item 
were checked/unchecked.


--
Niels Ull Jacobsen, Kruger A/S

Everything stated herein is THE OFFICIAL POLICY of the entire Kruger
group and should be taken as legally binding in every respect. Pigs
will grow wings and fly.

-----From: LeRoy Baxter 

Use a standard listbox in the RC (must be Owner-draw fixed, and Has =
Strings)
then subclass in the dialog's InitDialog()

      m_myCCheckListBox.SubclassDlgItem(IDC_MYLISTBOX, this);

You can check all the items like this:

      for (int i=3D0; i wrote:
>
>I want to have a check list box in a dialog.  How do I add one
>using the resource editor?  I know I can create one and
> add it through programming, but I would prefer to do it the
> "normal" way if possible.

The checked list box isn't a Windows control.  There's no way to add it 
through the dialog editor. A checked list box is a standard list box control 
window which is owner-draw painted by code in the MFC-supplied CCheckListBox 
class.

>Once I have the control - what mfc function(s) would I use to handle 
checking or unchecking elements within the list?
>

Like the documentation says, you can use the CCheckListBox::GetCheck() and 
CCheckListBox::SetCheck() functions.

>Thanks in advance - I know this is a simple question, but I can't find much 
documentation on this control.
>

I don't understand that-- where did you try looking?  CCheckListBox is right 
there in the hierarchy (with everything else) under "Class Library Reference" 
in online help.

.B ekiM
--
#ifdef JOHNELS_SAID_I_COULD_STEAL_HIS_SIG
//REVIEW: JohnEls changed his and now it's cooler than the one I stole
TCHAR szDisc[] = _T("These words are my own; I do not speak for Microsoft.");
#endif





| Вернуться в корень Архива |