![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Kornev |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 12.12.2006 Репутация: нет Всего: нет |
Ребят, подскажите способ или метод. Мне нужно реализовать программу в которой будет слева список фамилий, а справа информация о том человеке который был выбран из данного списка.
Между этими двумя "окнами" должна быть перегородка, как в С++: у нас слева список файлов, а справа код данного файла... Как сделать эту перегородку??? Ну и второй вопрос: мне понадобится вертикальный скрол, как сделать чтоб размеры скрола всегда соответствовали размеру окна? CreateWindow("scrollbar","",WS_CHILD|WS_VISIBLE|SBS_VERT, 100, 0, 15, 300,hWnd,(HMENU)1, hInst, NULL); Что нужно поставить вместо 300 чтоб скрол всегда касался нижней части окна? |
|||
|
||||
| srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 4 Всего: 49 |
В win32 нет стандартного элемента управления типа Splitter. Такой надо создавать самому. Здесь задаются только первоначальные размеры окна. Тебе надо написать обработчик WM_SIZE и в нём, зная новые размеры окна, изменять размер и положение scrollbar -------------------- Не смей читать мою подпись!!! |
|||
|
||||
| Kornev |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 12.12.2006 Репутация: нет Всего: нет |
Подскажи пожалуйста, а где именно будут храниться параметры int Width и int Height когда приходит сообщение WM_SIZE?
|
|||
|
||||
| srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 4 Всего: 49 |
В параметре сообщения LPARAM.
Младшие два байта содержат ширину, а старшие два байта - высоту окна.
-------------------- Не смей читать мою подпись!!! |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
||||
|
||||
| Kornev |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 12.12.2006 Репутация: нет Всего: нет |
Спасибки anwe и srd!!!!
Кстати, anwe поздравляю с праздником, ты отправил 555 сообщений! Как ни как годовщина! |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
Kornev, спасибо, я и не заметил
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Если скролл-бар жестко связан с каким-то окном, нет смысла делать его отдельным контролом, а лучше "какое-то" окно создать со стилем WS_VSCROLL, а потом управлять с помощью GetScrollInfo\SetScrollInfo. Тогда самому ресайзить не надо. -------------------- ... |
|||
|
||||
| Kornev |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 12.12.2006 Репутация: нет Всего: нет |
Всем спасибо за внимание!
Проблема решена Хотя по мере решения образовалось не мало прикольных мелочей... WM_CREATE: hWndScroll=CreateWindow("scrollbar","",WS_CHILD | WS_VISIBLE | SBS_VERT, 100,150, 15, 768,hWnd,(HMENU)1, hInst, NULL); break; WM_SIZE: Height=HIWORD(lParam); Width=LOWORD(lParam); SetWindowPos(hWndScroll,HWND_TOPMOST,150,50,15,Height-50, SWP_NOZORDER); break; Так всё славно работало, но мерцало при изменении размера... ТРАНДЕЦ!!! ПО этому: WM_ERASEBKGND: break; Теперь Не мигает но и не обнавляет окно Значит: case WM_PAINT: hdc = BeginPaint(hWnd, &ps); Rectangle(hdc,0,50,150,Height);//Левый список Rectangle(hdc,165,50,Width,Height);//правый список Rectangle(hdc,0,0,Width,50);//Верхний прямоугольик EndPaint(hWnd, &ps); break; Может быть слегка по деревянному, но зато работает хорошо!!! Никаких мерцаний и чёткое прилягание границ скрола к области окна! Кто заметил какие то явные недостатки, прозьба писать |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |