|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
|
Belous |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 8.11.2015 Репутация: нет Всего: нет |
Проект создаю на C++, используя только чистый WinAPI без MFC и без ресурсов.
Как создать разделитель окна на две части. Предполагаю сделать окно шириной в два пикселя а затем прописать всю логику его событий. Или как-то нужно по-другому? Может у кого-нибудь есть ссылки на примеры? |
|||
|
||||
GremlinProg |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
В принципе - можно. Стандартного такого компонента нет, так что да, придется самому описать всю логику через WinAPI, либо перейти на движок помощнее. А в чем на данном этапе проблемы?
Добавлено через 5 минут и 12 секунд Первые же ссылки в гугле конечно дают много решений: http://stackoverflow.com/questions/5561236...plitter-control в том числе и на codeproject: http://www.codeproject.com/KB/splitter/ но я не заметил там чистых решений через WinAPI, так что, если есть вопросы или какой-то продуктивный ход решений, выкладывайте, есть проблемы - поможем (писать, конечно, ни кто за Вас не будет) Добавлено через 8 минут и 15 секунд Хотя, вот один из ответов ведет на WinAPI: http://old.sumitbirla.com/software/splitter.php Я бы наверное попридирался, но важна в первую очередь задача, которую он решает. Если этого достаточно - хорошо, нет - опишите проблемы. -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
spSerg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 22.3.2007 Репутация: нет Всего: 4 |
Окно создавать нужно не два пикселя, а на всю ширину двух обслуживаемых окон, которые буду изменять размер как дочерние. А самому рисовать только два пикселя, которые не будут закрываться дочерними. Получится структура:
MainWnd(Splitter(LeftWnd,Right)) Но все же лучше воспользоваться легковесной библиотекой. Например WTL, которая дает мощную, но легкую функциональную обертку над WinAPI, в отличие от монолитного MFC. Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
Belous |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 8.11.2015 Репутация: нет Всего: нет |
Спасибо за ссылки и советы. Буду пробовать.
PS Хотел плюсики поставить но постов у меня мало. Это сообщение отредактировал(а) Belous - 10.11.2015, 22:42 |
|||
|
||||
Belous |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 8.11.2015 Репутация: нет Всего: нет |
Я так понял, что нужно отслеживать координаты курсора и по надобности менять изображение курсора. По другому не получается. Введение дополнительных окон и попытка переложить часть функционала на них - довольно бесполезное занятие. Описывая весь функционал в окне родителе - долго, кропотливо, на мой взгляд не правильно - но так задумано создателями WinAPI.
Это сообщение отредактировал(а) Belous - 9.9.2017, 13:41 |
|||
|
||||
Belous |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 8.11.2015 Репутация: нет Всего: нет |
Спасибо
Это сообщение отредактировал(а) Belous - 9.9.2017, 14:12 |
|||
|
||||
GremlinProg |
|
||||
Эксперт Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
да, примерно так: за это отвечает уведомление WM_SETCURSOR
В ответ на это сообщение можно вызвать SetCursor с нужным Вам курсором, если координаты переданные в этом сообщении принадлежат сплиттеру -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||
|
|||||
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |