|
Программирование >> Формирование пользовательского контейнера
hInst = hThisInst; сохраняет текущий дескриптор экземпляра Инициализирует стандартные элементы управления. Это необходимо индикатору выполнения процесса. cc.dwSize = sizeof(INITCOMMONCONTROLSEX); cc.dwICC = ICC PROGRESS CLASS; InitCommonControlsEx(&cc); Показывает свернутое окно. Shoindow(hwnd, SW SHOWMINIMIZED) ; Создает диалоговое окно загрузки файла. DialogBox(hInst, DLDB , hwnd, (DLGPROC) DialogFunc); Создает цикл обработки сообщений. vTcl.IpszMeniiName = NULL; без меню wcl.cbClsExtra = 0; без дополнительной памяти окна (по extras) wcl.ctWhcaExtra = 0; wcl.hbrBackgroLind = NULL; не используется Регистрирует класс окна, if{!RegisterClassEx{&wcl)) return 0; Создает главное окно, которое будет невидимым, hwnd = CreateWindow( szWinName, имя класса окна File Downloader , заголовок О, без стиля О, О, О, О, без размеров NULL, без родительского окна NULL, без меню hThisInst, дескриптор экземпляра NULL без дополнительных аргументов while(GetMessageC&msg, NULL, О, 0)) { TranslateMessage(&insg); транслирует сообщения от клавиатуры DispatchMessage(&msg); возвращает управление Windows return msg.wParam; функция обработки окна. ISCESULT CALLBACK WindowFunc (HWND hwnd, UINT message, WPARAM wParam, LPARAM iParam) switch (message) { case WbLDESTROY: PostQuit:Message(0); завершает программу break; default: return DefWindowProc(hwnd, message, wParam, IParam); return 0; Диалоговая функция загрузчика. BOOL CALLBACK DialogFunc(HWND hdwnd, UINT message, WPARAM wParam, LPARAM IParam) Переменная url инициализируется с конкретным URL-адресом только для демонстрации, static char url[URL BUF SIZE] = http: www.osbome.com/products/0072226803/0072226803 code.zip ; static Thrdlnfo ti; switch (message) { case WM INITDIALOG: Инициализирует edit box (поле редактирования) с URL-адресом. SetDlgltemText(hdwnd. IDD EB1, url); Создает progress bar (индикатор выполнения процесса). hProgWnd = CreateWindow(PROGRESS CLASS, WS CHILD I WS VISIBLE УЗ ЮЕБЕК, 4, 64, 320. 12, hdwnd, NULL, hInst, NULL); Устанавливает величину приращения равной 1. SendMessage(hProgWnd, PBM SETSTEP, 1, 0); return 1; case WM COMMAND: switch(LOWORD(wParam)) { case IDCANCEL: EndDialog(hdwnd, 0); PostQuitMessage(O); return 1; case IDD START: начинает загрузку Устанавливает поле position в 0. SendMessage(hProgWnd, РВМ ЗЕТЮЗ. О, 0) ; Получает URL из edit box. GetDlgltemText (hdwnd, IDD EB1, url, URL BUF SIZE) ,-ti.url = url; Получает статус загрузки (состояние переключателя). ti.reload = SendDlgltemMessage(hdwnd, IDD CB1, BM GETCHECK, 0. 0); Получает дескриптор кнопки Start. ti.hPBStart = GetDlgltem(hdwnd, IDD START); Переустанавливает счетчики выполнения процесса, resetprogress(); Запускает поток загрузки, if(!hThrd)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |