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

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

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


« : 18-11-2008 05:45 » new

MFC , VC++6 , имеется ресурс диалога, созданный в редакторе. В программе создаю диалог через Create  , а как программно узнать, каков размер ресурса - ширина и высота в пикселах ?
GetWindowRect только что созданного диалога вертает нули... А может вообще до Create можно размеры узнать программно ?
Записан

Джон
просто
Администратор

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

« Ответ #1 : 18-11-2008 06:50 » 

Диалога???

В OnInitDialog делай:

CRect rc;
GetDlgItem(ID_XXXX)->GetWindowResct(&rc);
ScreenToClient(&rc);
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #2 : 18-11-2008 07:03 » 

ууу, фсё, сорри, был пьян, наверное )))
В общем, это мне надо было для того, чтоб засунуть диалог в виде элемента управления на бар, почему у меня нули получились - так я и не понял, сейчас переделал , всё заработало

Код:
	int indx=m_wndToolBar.CommandToIndex(ID_SENSE_CHOOSING);
if(indx>=0)
{
if(!m_barr_dlgSenseRange.Create(m_barr_dlgSenseRange.IDD,&m_wndToolBar))return 0;
CRect rdlg;
m_barr_dlgSenseRange.GetWindowRect(&rdlg);

//тут задаём требуемую ширину места под контрол
m_wndToolBar.SetButtonInfo(indx,ID_SENSE_CHOOSING,TBBS_SEPARATOR,rdlg.Width());
//и потом достаём прямоуг, который назначил бар
m_wndToolBar.GetItemRect(indx,&rtemp);

//и муваем наш контрол
m_barr_dlgSenseRange.MoveWindow(&rtemp,1);
m_barr_dlgSenseRange.ShowWindow(SW_SHOW);
}
Записан

RXL
Технический
Администратор

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

WWW
« Ответ #3 : 18-11-2008 07:41 » 

Леш, в OnCreate диалога еще нет, а в OnInit уже можно.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #4 : 18-11-2008 07:53 » 

не, вы не поняли  Улыбаюсь Я вообще в код диалога тут не лезу , только снаружи. Но уже я всё, победил, код работает )
« Последнее редактирование: 18-11-2008 07:54 от Алексей1153++ » Записан

Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #5 : 26-12-2008 05:37 » 

а ещё вопрос по ресурсу: к примеру, охота держать исходники класса диалога в отдельной папке. С *.c и *.cpp всё ясно, а как затолкать в файл описание ресурса диалога ? То есть хочется такое

MyDlg.h
MyDlg.cpp
MyDlg_res.h
« Последнее редактирование: 26-12-2008 05:46 от Алексей1153++ » Записан

Джон
просто
Администратор

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

« Ответ #6 : 26-12-2008 16:52 » 

Надо создать свой .rc файл и инклудить его или напрямую в rc (нежелательно), или в rc2.

Открой rc файл и посмотрти, там ты найдёшь кучу ресурсных файлов, например, afxres.rc, afxprint.rc.
По такому принципу можешь и свои ресурсы добавлять.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #7 : 27-12-2008 04:10 » 

это всё понятно, ну а никак нельзя встроить строку с описанием ресурса в код класса ?
Записан

Джон
просто
Администратор

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

« Ответ #8 : 28-12-2008 17:03 » 

Лёш, опять олифишь? Улыбаюсь)

Ты представляешь себе процесс компиляции и линковки? Что передаётся в качестве параметров? Ага

С другой стороны - делай всё динамично и никакие ресурсы не нужны.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #9 : 28-12-2008 17:11 » 

Джон, в динамике могу сделать, но же хочется, "чтоб красиво" Улыбаюсь Ну низя, так низя Улыбаюсь)

не олифю, не. Нет, не олифю точно. Я нет. Не олифю, да.
Записан

Джон
просто
Администратор

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

« Ответ #10 : 29-12-2008 08:12 » 

А библиотека расширения MFC не может помочь? Экспортируй диалог и всё. В принципе получится тоже самое.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

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


« Ответ #11 : 29-12-2008 10:23 » 

да это понятно. Но это не то. Ладно, динамически сделать вроде приемлимо, хоть и не так удобно
Записан

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

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines