Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как открыть диалог? / 6 сообщений из 6, страница 1 из 1
12.05.2007, 20:22
    #34521205
Jevgeniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть диалог?
Здраствуйте!
У меня диалог на основе СRecordView. Его нужно открыть из меню. Подскажите пожалуйста как это можно сделать?

Я пробовал это:
Код: plaintext
1.
2.
3.
::DialogBox( ::GetModuleHandle(NULL),
		MAKEINTRESOURCE(IDD_DLG_ZAKAZ),
		NULL,
		NULL);
Никакой реакции.
Помагите пожалуйста.
...
Рейтинг: 0 / 0
14.05.2007, 10:39
    #34522556
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть диалог?
Jevgeniy пишет:
> У меня диалог на основе СRecordView. Его нужно открыть из меню.
> Подскажите пожалуйста как это можно сделать?
>
> Я пробовал это:
>
> ::DialogBox( ::GetModuleHandle(NULL),
> MAKEINTRESOURCE(IDD_DLG_ZAKAZ),
> NULL,
> NULL);

СRecordView - Это не диалог, а CView, его нельзя так создавать.
(точнее конечно можно, но только MFC не предполагает такой способ
его создания и код СRecordView просто не будет работать).
Его надо создавать как View, с документом и фреймом , на
основе CDocTemplate-а. Как - смотри документацию, примеры.
Например, знаменитый scrible.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
14.05.2007, 11:19
    #34522724
Jevgeniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть диалог?
Вопрос частично решон. Диалог создается на основе CDialog, используется функция onPaint вместо onDraw. Подскажите есть ли между ними существенная разница?
...
Рейтинг: 0 / 0
14.05.2007, 13:49
    #34523269
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть диалог?
Jevgeniy пишет:
> Вопрос частично решон. Диалог создается на основе CDialog, используется
> функция onPaint вместо onDraw.

Уже не первый раз за последнее время кто-то говорит, что в диалоговом
окне он использует onPaint. ЕЕ НЕ НАДО ИСПОЛЬЗОВАТЬ, даже нельзя
использовать. Потому что диалог - это набор контролов, он должен
сам себя отрисовывать, это делает WinAPI само, там не нужно и даже
нельзя использовать WM_PAINT.

> Подскажите есть ли между ними
> существенная разница?

Да, есть. ОnDraw - более универсальный аналог, позволяющий
делать независимый от устройства вывод как на экран, так и на печать.
При чем чтобы код был один и тот же. Это достигается путем введения
некоеко более мощного чем в Win32 API полиморфизма в MFC-классах , это
делающих.

OnDraw нет в Win API,
OnDraw есть только в MFC, и MFC-шные классы типа CView должны использовать
именно ее для вывода, как на экран (в окно), так и на принтер.

OnPaint - это просто хендлер виндового сообщения WM_PAINT, он немного
подготавливает контекст рисования и вызывает OnDraw (на сколько я помню).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
14.05.2007, 19:51
    #34524529
Jevgeniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть диалог?
Спасибо, разницу почуствовал на практике. Кстати нашел решение как открыть диалоговое окно созданое на базе класса CRecordView. Оказывается все намного сложнее чем казалосьь раньще. Нужно использовать представления и юзать класс CMultiDocTemplate

Всем спасибо, вопрос решон
...
Рейтинг: 0 / 0
14.05.2007, 20:35
    #34524593
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как открыть диалог?
Jevgeniy пишет:
> все намного сложнее чем казалосьь раньще. Нужно использовать
> представления и юзать класс CMultiDocTemplate

Не обязательно -Multi-.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как открыть диалог? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]