![]() |
|
![]() ![]() ![]() |
|
The Thing |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: 1 Всего: 3 |
1.Мне нужно создать контрол в SDI приложении, т.е. наследуемый от CWnd. Написанно, что таких много.. но я нужной мине информации не нашел. Вопрос такой.. подкиньте пример реаилизации примитивного контрола.. хотя бы структуру.. куда мне прыгать.. или книженцию.. А лучше и то, и другое.
2.Нужна книга по CGI+ (модераторы извините, не хотел из-за 'того создавть новый топ) -------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
The Thing |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: 1 Всего: 3 |
Да... свой.. это не кнопка, это будет элемент управления!
Добавлено @ 11:44 Может кто напишет пример моздания контрола под диалог, если под SDI нету.. хотя должно быть одно и то же.. (за некоторым исключением) -------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Создаешь свой класс
в его конструкторе пишешь VERIFY(RegisterWindowClass()); Вотреализация этой функции
Ну дальше через Create ,как обычно ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
The Thing |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: 1 Всего: 3 |
Огромное спасибо.. попробую..
Т.е. мы регистрируем наш контрол, да? После чего создаем.. -------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
|||
|
||||
The Thing |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: 1 Всего: 3 |
Еще вопрос.. Как обычно не совсем получилось.. так как я еще ни разу его не создавал - не сталкивался!
Создал класс CKadr, написал такой код.. По идее должен создаться квадрат.
в CTestView пишу такой код
У меня все создается. Впорос, А где должно отрисовываться мой когнтрол. Я должен Добавлять в CTestView::OnPaint свой OnPaint? т.е. что-то вроде
-------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
||||||
|
|||||||
The Thing |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 286 Регистрация: 6.9.2004 Репутация: 1 Всего: 3 |
ссори... ступил...
-------------------- Правильность работы программы зависит от двух велечин. В нужном месте должны стоять нолик и еденичка. |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
xTr1m |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: нет Всего: 1 |
У меня есть вопросик. Вот тута:
void CTestView::OnPaint() { CPaintDC dc(this); // device context for painting m_control.OnPaint();//или m_control.OnPaint(&dc); } Получается, что я должен принудительно сказать - "Нарисуй мой объект". Но ведь если создать на виде обчную кнопку, то она будет отрисовываться сама, без нашего участия. Так в чем тут дело? Как сделать так, чтобы вид отрисовываал сам мои объекты, которые я создаю на нем? P.S. А если я захочу разместить этот прямоугольник не в виде , а на диалоге? То как тогда? Это сообщение отредактировал(а) xTr1m - 14.7.2006, 09:28 |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Так, как ты написал, как раз не правильно делать.
Не важно, стандартная кнопка или твоя, если все сделано правильно, она отрисуется сама. Правильно - это: контрол должен уметь рисоваться (иметь обработчик WM_PAINT) и должен быть виден и расположен в пределах видимой части вью. Добавлено @ 09:32 В диалоге тоже самое: все дочерние окна автоматически получают WM_PAINT при перерисовке родителя. -------------------- ... |
|||
|
||||
xTr1m |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: нет Всего: 1 |
я, наверное, не так выразился. Вопрос мой в следующем:
В обработчике OnPaint вида указано принудительно, что нужно отрисовать объект m_control. Но ведь если это не сделать, то ничего рисоваться не будет. А если мы через Create создадим кнопку, то она будет рисоваться сама (без m_button.OnPaint(&dc)) Так как тогда нужно создавать свои элементы, чтобы они сразу отрисовывались самостоятельно? |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Точно так же как кнопку: Create и т.д. Если не рисуется без принудительных вызовов OnPaint, значит, что-то не так. "Не так" можно сделать очень много, у меня воображения не хватит описывать. Лучше приведи основной код своего контрола, посмотрим.
-------------------- ... |
|||
|
||||
xTr1m |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: нет Всего: 1 |
а что приводить то, вот наверху пример контролла, который создает The Thinq. Если в OnPaint вида не написать m_control.OnPaint();//или m_control.OnPaint(&dc); то квадрата не будет. И что тут не так? (Или может я что-то не так написал)
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Наверняка. Может, ты забыл свой контрол сделать видимым, а может он у тебя на заднем плане болтается. Посмотри спаем: найди свою форму и проверь ее детей, найди свой многострадальный контрол и посмотри, есть ли у него стиль VISIBLE и не накрыт ли он чем нибудь. -------------------- ... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |