Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Progress bar, no MFC, please... :) 
V
    Опции темы
Ryoga
Дата 20.9.2005, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 20.9.2005

Репутация: нет
Всего: 6



Собственно проблема...
Объясните пожалуста недалёкому человеку, как этот прогресс бар использовать без MFC.
Не могу найти никаких функций, вообще ничего, связанного с этой темой.
В здоровенной книженции ВИН АПИ 2000 - ни слова.
Контрол есть, а описания его нет. smile
PM MAIL   Вверх
srd
Дата 20.9.2005, 23:17 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 5
Всего: 49



http://msdn.microsoft.com/library/default....bar/reflist.asp
Учись работать с первоисточниками smile Там тебе и примеры, и reference


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
Ryoga
Дата 20.9.2005, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 20.9.2005

Репутация: нет
Всего: 6



Ну, был не прав - исправлюсь... smile
З.Ы.: Плюсик поставить не дали, но я запомню... smile
PM MAIL   Вверх
Ryoga
Дата 23.9.2005, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 20.9.2005

Репутация: нет
Всего: 6



Снова я... smile
Вроде, делаю всё как там сказано. Вызываю функции следующие...
Код

    GetClientRect(hwndParent, &rcClient); 
    cyVScroll = GetSystemMetrics(SM_CYVSCROLL); 
    hwndPB = CreateWindowEx(0, PROGRESS_CLASS,
             (LPSTR) NULL, WS_CHILD | WS_VISIBLE,
                         rcClient.left, rcClient.bottom-cyVScroll,
                         rcClient.right, cyVScroll, 
                         hwndParent, (HMENU) 0, hInstance, NULL); 

Пробовал варьировать параметры всяческим образом - один хрен, не работает. Всё время возращает NULL.
Функция, с инициализацией прогресс бара, вызывается из созданного виндой тестового примера с "Хелло Ворлд!". smile
Инициализация родительского окна - следующая.

Класс
Код

   WNDCLASSEX wcex;
   wcex.cbSize = sizeof(WNDCLASSEX);
   wcex.style        = CS_HREDRAW | CS_VREDRAW;
   wcex.lpfnWndProc    = (WNDPROC)WndProc;
   wcex.cbClsExtra        = 0;
   wcex.cbWndExtra        = 0;
   wcex.hInstance        = hInstance;
   wcex.hIcon        = LoadIcon(hInstance, (LPCTSTR)IDI_TST);
   wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
   wcex.hbrBackground    = (HBRUSH)(COLOR_WINDOW+1);
   wcex.lpszMenuName    = (LPCSTR)IDC_TST;
   wcex.lpszClassName    = szWindowClass;
   wcex.hIconSm        = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);


Окно
Код

   hwndParent = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
                                         CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);


В чём дело?
З.Ы.: Если тут какая архитупая ошибка, сильно не бейте - не специалист я в этом. smile
З.З.Ы.: Да, кстати, там (в примере функции создания прогресс бара) вызывается функция InitCommonControlls(), которая у меня при линковке не находится. Я, просто включаю в программе файл commctrl.h. Может, дело в этом?

Это сообщение отредактировал(а) Ryoga - 23.9.2005, 15:51
PM MAIL   Вверх
srd
Дата 23.9.2005, 15:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 5
Всего: 49



Библиотеку с Common Controls сначала надо инициализировать. Добавь в начало своей WinMain() функции:
Код

INITCOMMONCONTROLSEX icc = { sizeof( icc ), ICC_BAR_CLASSES };
InitCommonControlsEx( &icc );

И не забудь указать в настройках линкера библиотеку comctl32.lib
Добавлено @ 16:04
Цитата(Ryoga @ 23.9.2005, 23:48)
З.З.Ы.: Да, кстати, там (в примере функции создания прогресс бара) вызывается функция InitCommonControlls(), которая у меня при линковке не находится. Я, просто включаю в программе файл commctrl.h. Может, дело в этом?

Блин, не сразу заметил. Да, дело именно в этом - библиотеку сначала надо проинициализировать. Делается это с помощью функции InitCommonControlsEx (функция InitCommonControls, которая в примере, - она устаревшая, но тоже работает). Чтобы функция находилась при линковке - добавь в настройках линкера библиотеку comctl32.lib (в MSVC++ .NET 2003: Project Properties -> Linker -> Input -> Additional Dependencies)


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
Ryoga
Дата 23.9.2005, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 262
Регистрация: 20.9.2005

Репутация: нет
Всего: 6



Ёлки-палки, оно отображается. Счастье то какое... smile
Спасибо, ещё раз. smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0920 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.