how to capture the event that clicked the COMBOBOXs down-arrow?

i create a dialog that includes a COMBOBOX(IDD_COMBOBOX1),dialog's CallWindowProc is dlgproc function,dlgproc receives the WM_COMMAND event,does deal with the clicked down-arrow event in its parent window's dlgproc,how to write the code?
[248 byte] By [aneird] at [2007-11-20 11:37:57]
# 1 Re: how to capture the event that clicked the COMBOBOXs down-arrow?
In your windowProc do something like this:

switch(message)
{
case WM_COMMAND:
{
switch(HIWORD(wParam))
{
case CBN_DROPDOWN:
//do something

break;
}

}

break;
}
laitinen at 2007-11-9 13:32:54 >
# 2 Re: how to capture the event that clicked the COMBOBOXs down-arrow?
if the dialog has 2 COMBOBOX,how to differ the event CBN_DROPDOWN?
aneird at 2007-11-9 13:33:53 >
# 3 Re: how to capture the event that clicked the COMBOBOXs down-arrow?
switch(message)
{
case WM_COMMAND:
{
switch(HIWORD(wParam))
{
case CBN_DROPDOWN:
//Get the control ID of the ComboBox
int idComboBox = (int)LOWORD(wParam);
if(idComboBox == IDC_COMBO1)
//Do something
else if(idComboBox == IDC_COMBO2)
//Do something else

break;
}

}

break;
}
laitinen at 2007-11-9 13:34:52 >
# 4 Re: how to capture the event that clicked the COMBOBOXs down-arrow?
thanks!
aneird at 2007-11-9 13:35:57 >
# 5 Re: how to capture the event that clicked the COMBOBOXs down-arrow?
how to send CBN_CLOSEUP event?
i do this:
SendMessage( hwndDlg, CBN_CLOSEUP, wParam, lParam );
but

switch(HIWORD(wParam))
{
case CBN_DROPDOWN:
//Get the control ID of the ComboBox
int idComboBox = (int)LOWORD(wParam);
if(idComboBox == IDC_COMBO1)
//Do something
else if(idComboBox == IDC_COMBO2)
//Do something else

break;
case CBN_CLOSEUP;
break;
}

case CBN_CLOSEUP does not receive .
aneird at 2007-11-9 13:36:55 >