Программирование >>  Формирование пользовательского контейнера 

1 ... 69 70 71 [ 72 ] 73 74 75 ... 156


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)



1 ... 69 70 71 [ 72 ] 73 74 75 ... 156

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика