CComboBox как заменить выскакивающее окно на свое?
Мне нужно чтоб при нажатии на стрелочку "вниз" выпадал не стандартный список, а мое собственное окно. Я уже нашел способ перехватить сообщение нажатия на эту кнопку и, когда я показываю окно, оно нормально рисуется, но контрол, который я создаю в этом окне категорически не хочет поуказываться. Если честно, то мне нужно, чтоб показывался контрол CListCtrl вместо стандартного.
Привет.
Я сам такое не пробовал, просто в голову пиришло, я и решил высказать, то что в голву пришло :). А если сделать обычную кнопку, и рядом с ней CListCtrl, размером в одну строку. В "спокойном" состоянии будет выглядеть как обычный CComboBox. А при нажатии на кнопку разворачивать CListCtrl, до заранее установленных размеров и при нажатии на любом итеме, сворачивать его до исходного состояния и тот итем на котором был клик, чтоб он рисовался в этом CListCtrl'е который уже размером в одну строку . Вроде должно работать как CComboBox, но уже как тебе и надо окно будет CListCtrl'ом.
Спасибо. Я, наверное, так и сделаю. На самом деле, я так уже пробовал, при этом я пользовался функцие GetWindowRect чтоб получить координаты окна с кнопкой на диалоге. Но эта функция вовращает абсолютные координаты окна, а меня нужны относительные, чтоб правильно нарисовать другое окно на этом же диалоге
А ты и не пользуйся ей, просто создай переменную x и y, которые будут содержать координаты твоего комбобокса в целом, и еще создай функции GetPos и SetPos, GetPos будет тебе возвращать теже x и y, а SetPos будет устанавливать х и у, и сразу же позицианировать кнопку и список с помощью SetWindowPos. Или как говорит rostyslav скачай пример и глянь как это нужно делать правильно.