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

Я пробовал это:
Код: plaintext
1.
2.
3.
::DialogBox( ::GetModuleHandle(NULL),
		MAKEINTRESOURCE(IDD_DLG_ZAKAZ),
		NULL,
		NULL);
Никакой реакции.
Помагите пожалуйста.
...
Рейтинг: 0 / 0
Как открыть диалог?
    #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
Как открыть диалог?
    #34522724
Jevgeniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос частично решон. Диалог создается на основе CDialog, используется функция onPaint вместо onDraw. Подскажите есть ли между ними существенная разница?
...
Рейтинг: 0 / 0
Как открыть диалог?
    #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
Как открыть диалог?
    #34524529
Jevgeniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, разницу почуствовал на практике. Кстати нашел решение как открыть диалоговое окно созданое на базе класса CRecordView. Оказывается все намного сложнее чем казалосьь раньще. Нужно использовать представления и юзать класс CMultiDocTemplate

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

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


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