Uzywam Win XP i Deva C++
Mam pytanie czy aplikacje konsolowa napisana w C++ mozna uczynic oknem “Zawsze na wierzchu” ?
Uzywam Win XP i Deva C++
Mam pytanie czy aplikacje konsolowa napisana w C++ mozna uczynic oknem “Zawsze na wierzchu” ?
Można. Można wiele rzeczy zrobić.
Ponieważ mowa o dev c++, to od razu koniecznie musisz wskazać linkerowi kernel32.lib.
#include
// (...)
void main(void)
{
// Przechwytujemy dojśćie do okna konsoli dla procesu:
HWND hConsole = ::GetConsoleWindow();
::SetWindowPos(hConsole, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
// (...)
}
pozdro
No dobra ale jak to wskazać ?
Co wskazać, jak wskazać? Dał Ci gotowy kod, nie marudź.
Wskazać ‘kernel32.lib’. Też kminiłem chwilę o co chodzi. Nie wiem jak jest w dev-cpp z libkami windy.
No wlłśnie przy kompilacji tego kodu wywala mi errora ;/ Po za tym Fiołek jak coś piszesz to czytaj najpierw cały temat.
A kompilator zwraca następujący błąd
'::GetConsoleWindow' has not been declared
No cóż. Pewnie masz stare Platform SDK do dev-cpp. Spróbuj:
#define _WIN32_WINNT 0x0500
#include
MSDN: “To compile an application that uses this function, define _WIN32_WINNT as 0x0500 or later.” Możesz oczywiście spróbować załadować dynamicznie i obejść brak nowych libów, ale do tego też potrzebne jest WinAPI:
typedef HWND (WINAPI * _GetConsoleWindow)(void);
// (...)
HMODULE hDll = LoadLibrary("kernel32.dll");
_GetConsoleWindow proc = (_GetConsoleWindow)GetProcAddress(hDll, "GetConsoleWindow");
HWND hConsole = proc();
// (...)
FreeLibrary(hDll);
Oczywiście po pierwsze, to powinieneś zadać pytanie na jakimś forum użytkowników owego magicznego dev-cpp.
Dzięki Schabik Twój drugi sposób zadziałał prawidłowo Zastanawiam się czy nie zmienić kompilatora mogłbyś mi jakiś polecić?
Czy mi się wydaje, czy już w tym tygodniu(ostatnie 7 dni) był podobny temat? Ja polecam Visual C++, jeśli chcesz więcej to szukaj!