![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
PIT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 3.10.2007 Где: Нижний Новгород Репутация: нет Всего: нет |
Всем привет!
До этого момента всегда обходился одним окном, ну за исключением эбаут )) А тут понадобилось второе в котором мне надо будут рисовать график. Пытался создать таким же мокаром как и главное CreatWindow(...) но что то не получается (( Начал разбираться и наткнулся на дочерние и диалоговые окна. Дочерние я как понял только в области главного окна, а диалоговые мало функциональны, а мне бы хотелось нормальное окно, такое как CreatWindow создаёт. Может есть какая ни будь возможность его создать? Или на каком окне мне лучше график рисовать? Я использую только голый WinAPI. Заранее спасибо. |
|||
|
||||
Mihhail |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 13.9.2007 Репутация: 5 Всего: 9 |
Совсем не обязательно. Здесь так же как и с главным окном - регестрируешь дополнительный класс, например "GPAPH_CLASS_NAME", указываешь функцию обработчик сообщений (отдельную для каждого класса окон). Затем создаёшь обычным образом дочернее внешнее окно, например так: HwndGraph = CreateWindowEx( WS_EX_TOOLWINDOW, "GPAPH_CLASS_NAME", "График", WS_CAPTION | WS_CHILD | WS_POPUP | WS_VISIBLE, 0, 0, 300, 150, HwndGrWin, NULL,GrHnst, NULL); Да и диалоговые окна не настолько примитивны, также можно назначить ф-цию обработчик сообщений, и изменить под свои нужды. Вот как я вызываю окно настроек: DialogBox( GrHinst, "Config", hwndGrWin, (DLGPROC)ConfigDlgProc ); Это сообщение отредактировал(а) Mihhail - 17.10.2007, 15:40 |
|||
|
||||
zhgutov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Просто график можно и в диалоговом. Его же можно сделать переменного размера, без заголовка и пр... График постоянно должен быть? А почему нельзя использовать одно окно (из соображений дизайна)?
Так работает? Если в качестве родительского окна для второго указать первое (как в примере), то второе окно не будет отображаться в панели задач. Это сообщение отредактировал(а) zhgutov - 17.10.2007, 15:41 --------------------
Приполз. Увидел. Укусил. |
|||
|
||||
PIT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 3.10.2007 Где: Нижний Новгород Репутация: нет Всего: нет |
Я пока што сделал как советовал Mihhail, пример zhgutov, по пожей попробую.
Нет.
График мне надо во весь экран т.к. он очень информативен, а у меня уже много всячены понатыкано в первом. У меня тут другая головная боль появилась, у меня идет привязка к пикселям!!! Я все рисовал на своем мониторе с большим расширением, а на старых мониках бывает разришение 640 на 480 (мне риально понадобится на таком монике график смотреть ![]() Может как то можно системно узнать какое в данный момент разришение? И что мне потом делать когда узнаю разришение? Или еще какие ни будь способы? |
|||
|
||||
Mihhail |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 13.9.2007 Репутация: 5 Всего: 9 |
Здесь есть два пути либо высчитывать соотношение между реальными размерами и размерами области вывода, и умножать каждую координату графика на этот коэффициент. Это если нужно чтобы он полностью помещался на экране.
Либо в окне сделать ещё одно дочернее окно без заголовка и границ нужного нам размера - большего чем экран и родительское окно, выводить на него полноразмерный график, обеспечить при этом прокрутку - т.е. перемешение панели вывода(внутреннего окна) с помощью прикреплённых к родительскому полос прокрутки. Вот кусок кода оределения рабочей области вывода
|
|||
|
||||
PIT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 3.10.2007 Где: Нижний Новгород Репутация: нет Всего: нет |
Mihhail, большое спасибо все работает ))
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |