Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Стиль элемента-запрет изменения размеров по вертикали  (Прочитано 12189 раз)
0 Пользователей и 1 Гость смотрят эту тему.
FallenSoul
Опытный

ru
Offline Offline
Пол: Мужской

« : 05-04-2008 15:36 » 

Создаю дерево через CreateWindow(WC_TREEVIEW, ... -хочу сделать так чтоб нижняя граница дерева всегда совпадала с нижней границей окна а размеры можно было бы изменять только по горизонтали. Нашёл такой стиль как CCS_NOMOVEY, но вот указывая его в функции CreateWindow- реакции никакой. (CCS_NOMOVEY - запрет изменения размеров окна по вертикали).  Не понял
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 05-04-2008 15:46 » 

забудь тут про стили Улыбаюсь Лови сообщение WM_WINDOWPOSCHANGED для дерева и меняй низ как нужно
Записан

FallenSoul
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 05-04-2008 18:22 » 

Алексей1153++, покажи плз 1 раз каким образом это сделать? Немного недоумеваю как в функции WndProc управлять какими то свойствами созданного объекта если хендл его не передаётся туда как параметр
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 05-04-2008 18:25 » 

FallenSoul, покажи объявление функции WndProc
Записан

FallenSoul
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 05-04-2008 18:25 » 

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 05-04-2008 18:31 » 

hWnd - это вроде и есть хендл окна, которому предназначено сообщение

а хендл дерева ты должен знать - получаешь его при создании
Записан

FallenSoul
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 05-04-2008 18:34 » 

Всё правильно, однако хендл дерева остаётся там где он опеределён- в функции WinMain. Его передавать 5м параметром в функцию или как-то по другому делается это?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #7 : 05-04-2008 18:39 » 

FallenSoul, это делается так: где то хендл по любому запоминаться должен )) Иначе как ? Объяви переменную-член класса , в конструкторе обнули. А при создании - заполни. А в деструкторе не забудь удалить дерево
« Последнее редактирование: 05-04-2008 18:41 от Алексей1153++ » Записан

FallenSoul
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 05-04-2008 18:45 » 

Код:
	hTreeView=CreateWindow(
WC_TREEVIEW,NULL,WS_SIZEBOX|WS_VISIBLE|WS_CHILD|TVS_HASLINES|TVS_HASBUTTONS|TVS_LINESATROOT,
0,0,256,512,
hMainWnd,(HMENU)NULL,
(HINSTANCE)hInstance,NULL
);

Честно,- опять не понял. Вот создание дерева Улыбаюсь
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #9 : 05-04-2008 18:52 » 

ну вот, тебе надо hTreeView объявить где то в классе приложения
Код:
class MyProg
{
   HWND m_hTreeView;

   MyProg();
};

MyProg::MyProg()
{
   m_hTreeView=0;
}

MyProg::InitInstance() //или где там надо --
{
   m_hTreeView=CreateWindow(...);

}

MyProg::~MyProg
{
   DestroyWindow(m_hTreeView);
}
Записан

FallenSoul
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 05-04-2008 18:58 » 

Алексей1153++Не понял Здесь была моя ладья... А черт его знает... С ума сойти...
Даже незнаю что сказать. Я на вин апи пишу
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 05-04-2008 19:08 » 

FallenSoul, так я на нём и пытаюсь показывать ) Просто на чистом апи я не пишу, поэтому только догадываюсь. Но классы в с++ никто не отменял , а также глобальные переменные.
Записан

FallenSoul
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 05-04-2008 21:49 » 

Алексей1153++, если честно, то мне как-то страшно такое у себя писать- это действительно единственная реализация? Просто во всех книгах никогда такого не видел чтоб объявляли доп. классы и таким образом организовывали- понять код их switch(uMsg) мне конечно оказалось не по силам, но такого точно не было  :Улыбаюсь
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #13 : 05-04-2008 21:54 » 

зачем дополнительные ? Ну сделай просто глобальные переменные ,  просто сам же постепенно придёшь к классу или, на крайняк, массиву.

Всё , я спать ушёл на сегодня )
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines