1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/codetimer-ctwin32-dialog

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ctwin32-dialog

Часто пишу программы с использованием диалоговых окон, обычно это делается путём создания окна в VS и вызова CreateDialog(xxx). После многократной работы над этим процессом я заметил множество сложностей и решил создать этот простой шаблон.

#include "stdafx.h" Это предварительно скомпилированный заголовочный файл VS, его можно удалить, если вы используете другую среду компиляции.

Количество кода минимально, поэтому достаточно просто просмотреть заголовочные файлы, чтобы понять основные принципы использования.

Пример:

// Описание обратного вызова кнопки
// Формат обратного вызова такой: @hDlg — родительское окно, @windowId — id текущей кнопки
int CALLBACK about_callback(HWND hDlg, DWORD windowId)
{
    MessageBoxA(hDlg, "Обратный вызов выполнен!", "Сообщение", MB_OK);
    return 0;
}

// Основное диалоговое окно
void show()
{
    // Инициализация диалогового окна
    ctwin32::ctDialog ctd;
    ctd.createMainDialog(560, 280);
    //
    ctd.setTitle("Запущено...");
    //
    // Цвет фона
    ctd.setbgcolor(RGB(240, 240, 240));
    // Цвет переднего плана
    RECT rt = {0, ctd.hMainDlgRect.bottom - 70,
               ctd.hMainDlgRect.right, ctd.hMainDlgRect.bottom};
    ctd.setForecolor(RGB(35, 39, 54), rt);

    // Другие компоненты
    ctd.drawBmp(IDB_BITMAP1, 150, 70, 50, 50);       // Поддерживается только формат bmp
    ctd.setFontColor(RGB(81, 81, 81));
    ctd.createText("Инициализация сетевых настроек...", 200, 85, 300, 40, 26);
    ctd.createButton("О программе", 10, 10, about_callback);
}
``````markdown
    // Начало цикла сообщений UI, поток здесь блокируется
    ctd.showMainDialog();
}

// Входная точка.
int main()
{
    show();
    return 0;
}

Используемые IDB_BITMAP1 (в примере jpg, но следует преобразовать в bmp): Изображение

Результат тестирования: Результат тестирования

При нажатии кнопки: При нажатии кнопки


Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Небольшой класс диалогового окна в Win32-упаковке, который позволяет легко создавать интерфейс для небольших программ под Windows. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/codetimer-ctwin32-dialog.git
git@api.gitlife.ru:oschina-mirror/codetimer-ctwin32-dialog.git
oschina-mirror
codetimer-ctwin32-dialog
codetimer-ctwin32-dialog
master