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

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

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


« : 16-04-2010 07:27 » 

Джон, по любому к тебе вопрос ))

Как это делается? Хочу стиль SDI как в студии и такие же тулбары, которые можно передвигать (при этом место прикрепления показывается синим значком - можно выбрать слева, справа, сверху, снизу, в центре, вкладка)

Проект только начат, поэтому могу даже с нуля делать, если просто переделать из стандартного VS6-вида трудно
Записан

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

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

« Ответ #1 : 16-04-2010 08:19 » 

SDI? Наверное всё-таки MDI. Ага

C++ MFC?



Добавлено через 19 минут и 45 секунд:
Да как два пальца. Ага



Ну и для полноты картины вот здесь включай всё:



Добавлено через 4 дня, 19 часов, 18 минут и 16 секунд:
"И ирландское рагу готово" (с):




Добавлено через 1 минуту и 49 секунд:
А ещё круче можешь сделать в стиле Office 2007. Ага

Для этого активируй ribbon

 (1153: в русской редикции там написано "Лента")

* ss1.gif (19.39 Кб - загружено 2140 раз.)
* ss2.gif (16.42 Кб - загружено 2136 раз.)
* ss3.gif (60.91 Кб - загружено 1024 раз.)
« Последнее редактирование: 21-04-2010 03:59 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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 : 16-04-2010 08:58 » 

мне MDI не нужно, у меня не бывает много документов ) Более того, я классом CDocument даже не пользуюсь совсем. Хочется только оформление и тулбары.

Указанные шаги я делал, но тут мне не нравится вот что: корешок вкладки над вьюхой (я таки выбрал CFormView, как самое удобное для накидывания контролов) . Удалось победить до состояния, как на рисунке ниже, но
1) как максимизировать вьюху (как на нижнем рисунок) - вернее, как это изначально свойствами задать ?
2) как убрать кнопочный мусор, обведённый красным ?





Цитата
ещё круче можешь сделать в стиле Office 2007

нееее, увольте ))) Это жуть
« Последнее редактирование: 21-04-2010 03:59 от Алексей1153++ » Записан

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

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

« Ответ #3 : 16-04-2010 09:06 » 

мне MDI не нужно, у меня не бывает много документов ) Более того, я классом CDocument даже не пользуюсь совсем. Хочется только оформление и тулбары.

Указанные шаги я делал, но тут мне не нравится вот что: корешок вкладки над вьюхой (я таки выбрал CFormView, как самое удобное для накидывания контролов) . Удалось победить до состояния, как на рисунке ниже, но
1) как максимизировать вьюху (как на нижнем рисунок) - вернее, как это изначально свойствами задать ?
2) как убрать кнопочный мусор, обведённый красным ?


Дык так и выбирай сразу SDI. Какие проблемы? Все твои требования (таб, кнопки) выполнятся автоматом. А CDocument можешь и юзать, даже выбросит опосля.



* ss6.gif (18.49 Кб - загружено 2496 раз.)
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #4 : 16-04-2010 09:08 » 

так я вроде single  и выбирал ( Щас перепроверю
Записан

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

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

« Ответ #5 : 16-04-2010 09:11 » 

Не, не может быть. Вот как у меня получилось:



Добавлено через 1 минуту и 35 секунд:
зы Ты потом ненужные картинки поудаляй. Или вобще всю тему грохни.

* ss7.gif (32.53 Кб - загружено 2272 раз.)
« Последнее редактирование: 16-04-2010 09:12 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #6 : 16-04-2010 09:13 » 

оть! Точно, значит, всё-таки, прокосячил сначала )) Спасибо. Буду дальше копать


зы Ты потом ненужные картинки поудаляй. Или вобще всю тему грохни.
хорошо
Записан

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

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

« Ответ #7 : 16-04-2010 09:13 » 

Только не закопайся совсем. Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #8 : 21-04-2010 04:02 » 

Джон, подскажи способ, работающий в 2008 студии, и позволяющий легко и непринуждённо скопировать ресурс диалога из проекта в проект ?
В студии 6 это делалось просто - через поклажу в галерею, а тут не нашёл такого...

Вручную править rc неохота, да и долго

Добавлено через 1 час, 3 минуты и 3 секунды:
пока только вручную вышло-
1) добавить в проект №2 болванку диалога с таким же IDD, подвигать на нём кнопку, сохранить (чтобы в RC появилась запись о границах синей рамки)
2) поиском ищется в ресурсах обоих проектов по IDD и копируется из 2 в 1
3) копируются из resource.h нужные дефайны IDC контролов (их список можно узнать из RC)

Жаль
« Последнее редактирование: 21-04-2010 05:05 от Алексей1153 » Записан

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

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

« Ответ #9 : 21-04-2010 06:16 » 

MFC проект?

Добавлено через 9 минут и 5 секунд:
Скорей всего - ДА.

Делается очень просто. Достаточно открыть второй .rc файл (просто перетащи его в студию). А потом копипасти туда-сюда.



только потом обязательно проверь .h файл. Может быть наложение ID_ ресурсов. Это уже придётся ручками поправлять.

* ss1.gif (62.72 Кб - загружено 3158 раз.)
« Последнее редактирование: 21-04-2010 06:25 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #10 : 21-04-2010 07:22 » 

а, усё понял ) Спасибо. Нет, наложения на скопированном с нуля нек будет (по крайней мере в контролах) , а диалог, полагаю, студия сама пронумерует. Щас опробую )
Записан

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

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

« Ответ #11 : 21-04-2010 07:31 » 

Нет, Лёш. Смотри, допустим у тебя уже есть один контрол с IDC_ ... = 104, а ты добавляешь другой тоже с  104. Хотя если они находятся на разных формах это не страшно, но всё-равно не порядок. Студия сама ничего не нумерует в этом случае. Хотя проверь... Может 2008 поумнела, раньше такое приходилось подгонять вручную. Особенно счётчики ресурсов.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #12 : 21-04-2010 07:37 » 

нее, вручную оказалось менее геморно ведь один к одному получется. А тут открывать, целиться, не забыть чего )))
Записан

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

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


« Ответ #13 : 21-04-2010 07:38 » 

допустим у тебя уже есть один контрол с IDC_ ... = 104, а ты добавляешь другой тоже с  104. Хотя если они находятся на разных формах это не страшно, но всё-равно не порядок.
вот именно - на разных формах. Студия 6 тоже такое умела и делала. И 2008 так делает - повторяются, но не в пределах формы. Это норма Улыбаюсь

Добавлено через 2 часа, 45 минут и 20 секунд:
Джон, а каких-нибуд "CDialogEX" нет ? )) А то диалоги о контролы как-то из мейнфреймовской картины выбиваются. Нельзя стиль мейнфрейма на диалоги распространить ?
« Последнее редактирование: 21-04-2010 10:23 от Алексей1153 » Записан

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

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

« Ответ #14 : 21-04-2010 11:15 » 

Что ты называешь "стилем мейнфрейма" и чему он соответствует у диалога?


Добавлено через 8 минут и 44 секунды:
Да, возвращаясь к вышесказанному (а то тут отвлекают постоянно, давай дескать работай).

Я вот что имел ввиду. Даже если на разных формах. Вот смотри, что получилось в моём примере:

#define IDC_COMBO1                      1000

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        310
#define _APS_NEXT_COMMAND_VALUE         32771
#define _APS_NEXT_CONTROL_VALUE         1000
#define _APS_NEXT_SYMED_VALUE           310
#endif
#endif

Значит след. вставленный тобой контрол может получить значение 1000. Ща попробовал это в 9ой студии. Она добавила новый контрол с 1001, а _APS_NEXT_CONTROL_VALUE сразу установила в 1002.
Но если ты добавишь кучу контролов с уже существующими значениями, да ещё и вперемешку она может и не справится. Поэтому лучше работать чисто и хотя бы проверять.
« Последнее редактирование: 21-04-2010 11:24 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #15 : 21-04-2010 15:30 » 

Что ты называешь "стилем мейнфрейма" и чему он соответствует у диалога?
например, если выбрать стиль с цветом, то отдельно диалог будет всё равно серый, а вовсе не цветной Улыбаюсь И кнопки и полосы прокрутки и тд



Значит след. вставленный тобой контрол может получить значение 1000. Ща попробовал это в 9ой студии. Она добавила новый контрол с 1001, а _APS_NEXT_CONTROL_VALUE сразу установила в 1002.
а я на эту фигню не обращаю внимание уже давно - у меня ещё в 6-й студии был проект, где приходилось делать кучу правок вручную. Эти счётчики константы студии по барабану, если честно, она их всегда коррексно исправляет, ни разу ничего не поломалось Улыбаюсь

Кстати, тот проект не решусь конвертировать в 2008, так как тут редактирование форм очень убого сделано, особенно напрягает, когда из буфера вставляешь ID в поле таблицы свойств (неадекватно себя ведёт, как будто потом нажали ентер), а иногда одинарный щелчок по полю таблицы воспринимает как двойной. А двойной щелчок - это отдельная ТУПОСТЬ - меняется свойство или добавляется обработчик. Кошмарный интерфейс )) Тот проект нельзя переносить в 2008 студию именно из-за невозможности править потом контролы (их там немало - это набор морд для программаторов различных устройств).
Если и переносить в 2008, то надо переписывать капитально с созданием самописного редактора. Что не айс, так как займёт кучу времени плюс переконвертирование старых форм

Добавлено через 3 часа, 31 минуту и 44 секунды:
Делается очень просто. Достаточно открыть второй .rc файл (просто перетащи его в студию). А потом копипасти туда-сюда.

о, кстати! Нашёл способ Улыбаюсь Надо добавить в дерево проектов проект-источник тоже, тогда появляется возможность открыть оба дерева ресурсов и тупо копировать перетаскиванием с зажатым ctrl

Добавлено через 11 часов, 5 минут и 40 секунд:
хм, есть ведь, оказывается, CDialogEx , но там тупо можно задать цвет фона да фоновую картинку. А как хотя бы основной цвет оформления туда засунуть ? Пока не знаю, как, можно через дебри: брать с неклиентской области  менфрейма цвет пиксела и назначать цветом диалога )) Но ещё не пробовал
« Последнее редактирование: 22-04-2010 06:08 от Алексей1153 » Записан

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

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

« Ответ #16 : 22-04-2010 06:47 » 

а я на эту фигню не обращаю внимание уже давно

Ну-ну. Когда наступишь, знай - грабли. Ага


По ресурсам. Добавлять проект необязательно. Я же тебе сказал.

1. Открываешь рабочий проект.
2. В рамку студии перетаскиваешь .rc файл из другого проекта.

Посмотри на скриншот в #15. Там я открыл в проекте TestSDIFormView .rc-файл из проекта TestSDI. Для удобства я разделил клиентскую область на две вертикальные колонки, чтобы одновременно было видно оба ресурса. Стрелочка указывает на корешок с этим файлом. Там знакомое тебе дерево ресурсов. В нём я открыл диалог (корешок с содержим на скриншоте) и... фсё. Дальше:

тупо копировать перетаскиванием с зажатым ctrl

Ну ещё можно и Ctrl+C / Ctrl+V Ага

Оставаясь в дереве можно копипастить сразу целые диалоги и другие ресурсы. Причём туда-сюда.

К редактору ты просто не привык. Поэтому и проблемы. На самом деле немного дисциплины, контроль за блудливыми пальчиками, терпение и ву а ля - другого редактора тебе уже не захочется. Ага

Про стили. Не знаю. Я под 2008 только додиезю. С++ остались на уровне 2003/2005 и то старые конвертированные проекты. С новыми фичами MFC не работал. Почитай новшества для него в 2008 студии. Может чего и есть для этого дела. Хотя это вряд-ли. Ты офис 2007 видел? Если там например открываешь диалог "найти-заменить", то это нормальный классический серый диалог с квадратными кнопками. Так что, если хочешь шкуру сделать для всего придётся ручками. Или на C#. Ага

брать с неклиентской области  менфрейма цвет пиксела и назначать цветом диалога )) Но ещё не пробовал

Посмотри что-нить типа менеджера стилей. Может он даст тебе нужную инфу о цвете и тд. Пройдись по цепочке переключения стилей от момента нажатия на кнопку. Ведь все исходники открыты.

Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #17 : 22-04-2010 07:17 » 

Цитата
К редактору ты просто не привык. Поэтому и проблемы.
только терпение и спасает как раз Улыбаюсь А глюки редактора налицо - может в 10 исправят ? ))

Да, офис видел, и мне всегда не нравилось, что фрейм весь из себя, а диалоги обычные - выбиваются из общей картины. Ну, сам, так сам )

Менеджера попробую поизучать.

Добавлено через 2 часа, 2 минуты и 16 секунд:
Нет, Джон, просто открытие RC не позволяет манипулировать с ресами. А вот добавление проекта - позволяет. Да и не сложно это - открыл, скопировал, удалил )
« Последнее редактирование: 22-04-2010 09:20 от Алексей1153 » Записан

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

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

« Ответ #18 : 22-04-2010 10:07 » 

Что значит манипулировать?

Вот смотри, я открыл без всяких проектов, в "пустой" студии, просто перетянул из проводника, сначала один .rc-файл, потом другой. И фсё.



Теперь я могу туда сюда все ресурсы копировать, изменять их в обоих файлах как угодно.




Так какие проблемы?

* ss1.gif (25.46 Кб - загружено 3082 раз.)
* ss2.gif (28.08 Кб - загружено 2787 раз.)
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #19 : 22-04-2010 10:50 » 

у мну так не даёт делать. Если просто открыть файл ресурса, то при перетаскивании на дерево другого ресурса курсоп становится зачёркнутым кружком и не пущает
Записан

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

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

« Ответ #20 : 22-04-2010 11:08 » 

Хммм... Странно. А .h-файлы наместе? Те я их просто из проектных папок перетаскивал и бросал на фрейм студии. У тебя какая студия?
У меня VS Team System 2008 Development Edition v.9.0.30729.1 ну и ессно там какие были апдейты и сервиспаки на сегодняшний день.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #21 : 22-04-2010 15:48 » 

2008 professional edition 9.0.30729.1 SP

Добавлено через 11 часов, 39 минут и 55 секунд:
Что ты называешь "стилем мейнфрейма" и чему он соответствует у диалога?
например, если выбрать стиль с цветом, то отдельно диалог будет всё равно серый, а вовсе не цветной Улыбаюсь И кнопки и полосы прокрутки и тд
похоже, выход такой: использовать контролы, классы которых начинаются с "CMFC..." - по крайней мере CMFCTabCtrl меняет стиль вместе с мейнфреймом ) Остальное ещё не смотрел, но, думаю, они тоже умеют


Одно только наперёд напрягает - из визарда такие контролы на форму не покидаешь, это же вручную опять придётся создавать ? А если форма сложная ?
« Последнее редактирование: 23-04-2010 03:28 от Алексей1153 » Записан

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

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

« Ответ #22 : 23-04-2010 06:49 » 

Да, про студию непонятно... Ничего не могу сказать на этот счёт. Может у кого ещё есть разные версии...

из визарда такие контролы на форму не покидаешь

Опять загадками гворишь... Из какого визарда ты контролы на форму кидаешь? Если ты имеешь ввиду добавление элеменов в редакторе ресурсов, то там ты ещё класс, привязанный к этому ресурсу, не определяешь, а только добавляешь несколько букафф в .rc-файл.
При создании же объекта, ты можешь указать любой класс. В частности для таба - CMFCTabCtrl. Или я не?

Добавлено через 12 минут и 35 секунд:
Ща, глянул в MSDN MFC классы, похоже на то.
« Последнее редактирование: 23-04-2010 07:02 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #23 : 23-04-2010 07:34 » 

Именно бы в визарде, в редакторе ресов, указать, что я хочу не просто CButton увидеть, а CMFCButton , и при этом не создавать мембер для кнопки - это ж в каждый контрол придётся тыкнуться
Записан

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

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

« Ответ #24 : 23-04-2010 08:01 » 

А где ты это указываешь например для CButton?  Быть такого не может  А черт его знает...  Здесь была моя ладья...

Добавлено через 7 минут и 4 секунды:
Лёш, ещё раз. Вселенная не устроена как тебе того хочется. Ресурсы всегда представляли собой только мнемоническое описание свойств ресурса: стили, координаты, размыеры и тд. Для отображения в редакторе ресурсов указывается имя системного контрола: "static", "syslist32" etc.

При "доставании" это контрола с помощью GetDlgItem создаётся темпоральный объект типа CWnd, который посредством кастинга ты трансформируешь в нужный тебе контрол. Проще говоря это делается для проверки, ведь вся поднаготная это отправка сообщений с параметрами Send/PostMessage, а их можно отправлять кому угодно, главное чтоб окно было. Поэтому С++ редактор ресурсов в принципе на знает, объекту какого типа будет принадлежать этот ресурс в проге.

ПОэтому оставь свои мечты, или переходи на C#, там в дизайнере ты видишь, что обрабатывается в конструкторе и можешь повлиять "сразу". БОлее того созданные тобой контролы сразу находятся в ToolBox-e. Ага
« Последнее редактирование: 23-04-2010 08:08 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #25 : 23-04-2010 08:10 » 

Джон, да всё это понятно )

 
А где ты это указываешь например для CButton?  Быть такого не может  А черт его знает...  Здесь была моя ладья...
- так по умолчанию этот класс же сам используется Улыбаюсь

И хватит мне шарп рекламировать, ради кнопок я на него не перейду )))
Записан

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

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

« Ответ #26 : 23-04-2010 09:20 » 

- так по умолчанию этот класс же сам используется Улыбаюсь

И хде? Не понял? Ага По умолчанию никакого CButtona нет. С чего ты взял? Покажи хоть один пример. Ага

Либо ты создаёшь мембера, либо кастинг объекта CWnd*. Альтернативы нет. Или же я последние 10 лет был слепым. Ага

Цитата
И хватит мне шарп рекламировать, ради кнопок я на него не перейду )))

Я его не рекламирую. И не ради кнопок. Просто в нём реализованы все твои мечты и требования. Как если бы у тебя была ментальная связь с разработчками, ну или они тебя просканировали и сделали, так сказать, по образу и подобию, "согласно намеченным контурам" (с) Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #27 : 23-04-2010 09:23 » 

И хде? Не понял? Ага По умолчанию никакого CButtona нет. С чего ты взял? Покажи хоть один пример. Ага
Либо ты создаёшь мембера, либо кастинг объекта CWnd*. Альтернативы нет. Или же я последние 10 лет был слепым. Ага
ты меня понял Улыбаюсь Кастинг/не кастинг, а GetDlgItem вернёт указатель на объект CButton (хоть и приведённый к CWnd*)
Записан

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

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

« Ответ #28 : 23-04-2010 10:55 » 

Нет, Лёш. Наоборот. Ты ж не забывай, что MFC только обёртка над API, следовательно коммуникация с окном осуществляется через отправку сообщений, для чего необходимо и достаточно хэндла этого окна. Больше ничего. Кастинг в CEdit, СButton и тд, ты делаешь исключительно для того, чтобы вызвать нужные ф-ции-обёртки для SendMessage. Не далее не более.

Попробуй такую штуку:

   CWnd* pWnd = GetDlgItem(IDC_STATIC_123);
   CButton *pButton = (CButton*)pWnd;
   pButton->SetCheck(1);
   CEdit *pEdit = (CEdit*)pWnd;
   pEdit->SetWindowText("Hallo");
   pEdit->Copy();

И всё счастливы. Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"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


« Ответ #29 : 23-04-2010 11:14 » 

Джон, дык, это всё потому, что у них общий родитель, SetWindowText есть  методкоторого Улыбаюсь CWnd то есть.


а вот что будет со статиком после pButton->SetCheck(1) или Copy() , я не уверен
« Последнее редактирование: 23-04-2010 11:15 от Алексей1153++ » Записан

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

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines