Re[4]: MFC
От: DiMaster  
Дата: 28.10.02 06:53
Оценка:
Короче, тот самый Аноним — это я.

Отвечаю на вопрос:
HWND выпадающего листбокса можно получить, сделав следующее:
1) Создать свой собственный экземпляр CComboBox и ассоциировать его с нужным ресурсом на форме;
2) В своем комбобоксе прописать в карте сообщений:

BEGIN_MESSAGE_MAP(CComboBoxExt, CComboBox)
    //{{AFX_MSG_MAP(CComboBoxExt)
    ON_MESSAGE(WM_CTLCOLORLISTBOX, OnCtlColorListBox)
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()


3) прописать саму функциевину:

LRESULT CComboBoxExt::OnCtlColorListBox(WPARAM wParam, LPARAM lParam) 
{
    HWND hWnd = (HWND)lParam;
    if (m_hListBox == 0) 
    {
        //HWND hWnd = (HWND)lParam;

        if (hWnd != 0 && hWnd != m_hWnd) 
        {
            m_hListBox = hWnd;
    
            CWnd* pWnd = FromHandle( hWnd );

            pWnd->ModifyStyle(WS_CHILD, WS_POPUP|WS_THICKFRAME);
        }
    }

    

    return DefWindowProc(WM_CTLCOLORLISTBOX, wParam, lParam);
}


4) в h-файле для своего комбобокса:


        HWND m_hListBox;
        .....
        //{{AFX_MSG(CComboBoxExt)
    LRESULT OnCtlColorListBox(WPARAM wParam, LPARAM lParam);
    //}}AFX_MSG
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.