Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Динамическое создание диалога - ХЭЛП

7.1K
13 апреля 2004 года
СержЫк
1 / / 13.04.2004
Сколько не пытался по книжкам понять, как создать динамически блок диалога (в смысле с помощью шаблона диалоговой панели [DLGTEMPLATE]), ничего у меня не получилось... если кто понимает, как это делается, не будете ли добры примерчик процедурки создания такой панельки выложить? Только, плиз, только чистый код, без вызова других процедур (например, для выравнивания по слову и т.д. ;-)
------------------------------------
Заранее спасибо! :D
4.9K
30 апреля 2004 года
mrhx
43 / / 04.04.2004
Цитата:
Originally posted by СержЫк
Сколько не пытался по книжкам понять, как создать динамически блок диалога (в смысле с помощью шаблона диалоговой панели [DLGTEMPLATE]), ничего у меня не получилось... если кто понимает, как это делается, не будете ли добры примерчик процедурки создания такой панельки выложить? Только, плиз, только чистый код, без вызова других процедур (например, для выравнивания по слову и т.д. ;-)
------------------------------------
Заранее спасибо! :D



совсем маленький примерчик::

struct t_t
{
DLGTEMPLATE d;
WORD a, b, c;
} t;

/*
typedef struct {
DWORD style;
DWORD dwExtendedStyle;
WORD cdit;
short x;
short y;
short cx;
short cy;
} DLGTEMPLATE;
*/

t.d.style = DS_CENTER | WS_OVERLAPPEDWINDOW;
t.d.dwExtendedStyle = 0;
t.d.cdit = 0;
t.d.x = t.d.y = 0;
t.d.cx = t.d.cy = 150;
t.a = t.b = t.c = 0; // без меню, заголовка и имени класса.

DialogBoxIndirectParam(hInst, &t.d, NULL, DlgFunc, 0);



:) 8)

319
30 апреля 2004 года
xelos
577 / / 27.02.2003
или делаешь так:
 
Код:
DialogBox(hInst, (LPCTSTR)IDD_SOLVIDE, hWnd, (DLGPROC)CompetDialog);


где IDD_SOLVIDE идентификатор шаблона, CompetDialog - оконная процедура диалога,
hWnd - Хэндл окна из которого диалог вызывается
hInst - хэндл копии твоего приложения.

оконная процедура диалога:
Код:
LRESULT CALLBACK CompetDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
        switch (message)
        {
        case WM_INITDIALOG:
                return TRUE;

        case WM_COMMAND:
                switch (LOWORD(wParam))
                {
                case IDOK:
                        EndDialog(hDlg, LOWORD(wParam));
                        return TRUE;
                        break;
                case IDCANCEL:
                        EndDialog(hDlg, LOWORD(wParam));
                        return TRUE;
                        break;
                };
                break;
        }
        return FALSE;
};
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог