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
Проблема в EnumWndProc -- в хелпе его прототип
BOOL CALLBACK EnumWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
);
А в реализации -- BOOL CALLBACK EnumWindowsProc();
Как её вызывать?
Если дописать свой прототип EnumWindows, то выскакивает
Unresolved external.
Код:
А вообще, кому не жалко, киньте пожалуйста, хоть
какой-нибудь пример с EnumWindows
Цитата:
Originally posted by Chuvak
Люди, обьясноте пожалуйста, как использовать EnumWindows!
Проблема в EnumWndProc -- в хелпе его прототип
BOOL CALLBACK EnumWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
);
Люди, обьясноте пожалуйста, как использовать EnumWindows!
Проблема в EnumWndProc -- в хелпе его прототип
BOOL CALLBACK EnumWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
);
Прототип правильный.
Цитата:
Originally posted by Chuvak
А в реализации -- BOOL CALLBACK EnumWindowsProc();
А в реализации -- BOOL CALLBACK EnumWindowsProc();
В реализации это где?
Цитата:
Originally posted by Chuvak
Как её вызывать?
Как её вызывать?
А зачем тебе её вызывать?
Цитата:
Originally posted by Chuvak
Если дописать свой прототип EnumWindows, то выскакивает
Unresolved external.
Если дописать свой прототип 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;
}
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);
Цитата:
Originally posted by Damarus
В реализации это где?
В реализации это где?
Это в ВСВuilder 6 Enterprise
А компилятор требует BOOL CALLBACK EnumWindowsProc();
Я разобрался - нужно писать
Код:
EnumWindows((WNDENUMPROC)EnumWndProc,(LPARAM)&f);
Тогда все работает.
Вот готовый код на Visual C++, наслаждайтесь!