|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.02.2023, 21:33 | #1 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Диалоговое окно. Координаты.
Здравствуйте! Тема вопроса такова, координаты места вывода в диалоговом окне, когда я создаю шаблон диалогового окна, координаты одни, если мне нужно вывести график в этом окне, и я вызываю функцию для построения графика из функции окна диалога, то в функции построения графика координаты для окна диалога совершенно другие. Я так понимаю, это координаты экрана, а не окна, правильно? Если при создании шаблона диалогового окна сохранить координаты места, куда я бы хотел вывести некий график, то, как ясно из сути вопроса, график рисуется совершенно не там, где нужно. Как с этим бороться?
|
13.02.2023, 22:03 | #2 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Если вы после создания окна диалога получаете hDC связанный с этим окном, тогда координаты для рисования будут связаны с клиентской областью этого окна. Отсчитываться от левого верхнего угла этой области и оси будут направлены вправо (ось X) и вниз (ось Y).
Если для рисования вы получаете hDC от 0 дескриптора (экран), тогда координаты в функциях рисования будут связаны с экраном. |
13.02.2023, 22:33 | #3 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Так и делаю. Из функции диалога вызываю функцию для построения графика, в эту функцию передаю дескриптор окна диалога и дескриптор контекста устройства, которое создал в функции диалогового окна. Но получается какая-то лажа, вроде бы координаты одни и те же, но вывод, выводимая информация оказывается не там, где нужно.
|
13.02.2023, 22:39 | #4 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Я в функции CreateDlg сохраняю координаты той области, куда я хочу выводить график в структуре RECT, которая объявлена глобально так что в принципе дескриптор контекста можно и не передавать. Не понимаю, почему фигура не попадает в ту область, координаты которой указаны.
|
13.02.2023, 22:48 | #5 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Потому что координаты надо перевести в пиксели через MapDialogRect
|
13.02.2023, 22:54 | #6 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
|
13.02.2023, 22:55 | #7 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Это достаточно сделать один раз при получении координат в RECT. Потом координаты будут переведены в ней в пиксели и будут соответствовать выводу на экран.
|
13.02.2023, 23:04 | #8 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
|
14.02.2023, 17:04 | #9 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Ещё проблемка нарисовалась, когда я вывожу график в диалоговом окне, то, когда я выбираю данные для первого отображения, то всё работает удовлетворительно, как только я выбираю другие данные график не перерисовывается, а исчезает. Так как в данном случае график - это цилиндр и, по условию, в верху и в низу цилиндра должны быть идентификационное данные(я их пытаюсь вывести в объекты "static") , то график исчезает и одна идентификационная строка над
графиком, дело в том, что я пытаюсь сделать так чтобы с движением графика строка была строго над ним на расстоянии, скажем, высоты символа. Что это за косяк такой? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Диалоговое окно и временное окно | apofioz | Win Api | 2 | 22.01.2023 03:48 |
Диалоговое окно на js | maksim_serg | JavaScript, Ajax | 12 | 19.05.2015 16:29 |
Диалоговое окно | Antoshkaswimm | Microsoft Office Excel | 3 | 23.12.2012 23:01 |
Диалоговое окно | Михаил Юрьевич | Общие вопросы Delphi | 11 | 01.06.2009 20:31 |
Диалоговое окно | Beggins | Общие вопросы C/C++ | 3 | 09.05.2008 05:03 |