Denwer, если бы все было так просто я бы не спрашивал — не дурней паровоза, наверное. Трабл в следующем — получить по нажатию мыши на комбобокс HWND выпадающего листбокса по WM_CTLCOLORLISTBOX и затем модифицировать его как resizable. Сколько со стилями не игрался — не получается. Точнее сам то бордер для изменения размера появляется, а вот Курсор при подведении на границу не изменяется и тянуться тоже не хочет.
Но, за помощь спасибо огромное, ценю...
Здравствуйте Аноним, Вы писали:
А>Denwer, если бы все было так просто я бы не спрашивал — не дурней паровоза, наверное. Трабл в следующем — получить по нажатию мыши на комбобокс HWND выпадающего листбокса по WM_CTLCOLORLISTBOX и затем модифицировать его как resizable. Сколько со стилями не игрался — не получается. Точнее сам то бордер для изменения размера появляется, а вот Курсор при подведении на границу не изменяется и тянуться тоже не хочет.
А>Но, за помощь спасибо огромное, ценю...
Вот
здесь есть пример. Там, правда, делается не sublassing, а создается новое окно, которое маскируется под листбокс. Но мне стало интересно — получить resizeable просто listbox у меня сходу как-то не получилось. Это в принципе-то возможно? Можь у него в оконной процедуре этого и нету?
P.S. Просьба не наезжать, если совет глупый. По описанию проблемы (особенно в первом сообщении) понять проблему не так просто

.
Короче, тот самый Аноним — это я.
Отвечаю на вопрос:
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