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

Ваш аккаунт

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

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

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

EnumWindows

8.3K
01 мая 2006 года
Chuvak
40 / / 23.11.2005
Люди, обьясноте пожалуйста, как использовать EnumWindows!
Проблема в EnumWndProc -- в хелпе его прототип

BOOL CALLBACK EnumWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
);

А в реализации -- BOOL CALLBACK EnumWindowsProc();
Как её вызывать?

Если дописать свой прототип EnumWindows, то выскакивает
Unresolved external.
Код:
BOOL CALLBACK EnumWindowsProc(
    HWND hwnd,  // handle to parent window
    LPARAM lParam   // application-defined value
   );
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    while (EnumWindows(EnumWindowsProc,1L)) Sleep(1000);
    return 0;
}
//-------------------------------------------------------

BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lp)
{
    char str[256]="\0";
    GetWindowText(hWnd,str,256);
    MessageBox(hWnd,str,"123",MB_ICONINFORMATION);
    return true;
}


А вообще, кому не жалко, киньте пожалуйста, хоть
какой-нибудь пример с EnumWindows
9.5K
01 мая 2006 года
Damarus
101 / / 08.04.2006
Цитата:
Originally posted by Chuvak
Люди, обьясноте пожалуйста, как использовать EnumWindows!
Проблема в EnumWndProc -- в хелпе его прототип

BOOL CALLBACK EnumWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
);



Прототип правильный.

Цитата:
Originally posted by Chuvak
А в реализации -- BOOL CALLBACK EnumWindowsProc();


В реализации это где?

Цитата:
Originally posted by Chuvak
Как её вызывать?


А зачем тебе её вызывать?

Цитата:
Originally posted by Chuvak
Если дописать свой прототип EnumWindows, то выскакивает
Unresolved external.


Прототип EnumWindows писать не нужно. Он уже написан в winuser.h.

Цитата:
Originally posted by Chuvak
Код:
BOOL CALLBACK EnumWindowsProc(
    HWND hwnd,  // handle to parent window
    LPARAM lParam   // application-defined value
   );
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    while (EnumWindows(EnumWindowsProc,1L)) Sleep(1000);
    return 0;
}
//-------------------------------------------------------

BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lp)
{
    char str[256]="\0";
    GetWindowText(hWnd,str,256);
    MessageBox(hWnd,str,"123",MB_ICONINFORMATION);
    return true;
}



Код вполне рабочий. Только:

 
Код:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
8.3K
01 мая 2006 года
Chuvak
40 / / 23.11.2005
Цитата:
Originally posted by Damarus
В реализации это где?


Это в ВСВuilder 6 Enterprise
А компилятор требует BOOL CALLBACK EnumWindowsProc();

Я разобрался - нужно писать

 
Код:
EnumWindows((WNDENUMPROC)EnumWndProc,(LPARAM)&f);

Тогда все работает.
354
02 мая 2006 года
ШпиЁн
468 / / 19.02.2006
Вот готовый код на Visual C++, наслаждайтесь!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог