Я пишу живые обои. Итак, первым делом создайте окно и поместите его за значками на рабочем столе. Теперь я почти закончил его. Я не знаю, почему иногда значки отображаются над окном, а в большинстве случаев значки отображаются за окном.
Мои основные коды следующие.
Я нахожу окно SHELLDLL_DefView и устанавливаю для него дочернее окно, а затем устанавливаю его HWND_BOTTOM.
glfwInit();
GLFWwindow* window = glfwCreateWindow(800, 600, "my window", NULL, NULL);
HWND hwnd = glfwGetWin32Window(window);
SetWallpaperWindowPosition(hwnd);
void SetWallpaperWindowPosition(HWND hwnd)
{
auto r = GetSDDV();
HWND SDDV = std::get(r);
HWND SLV32 = std::get(r);
HWND WorkerW = std::get(r);
SetParent(hwnd, SDDV);
SetWindowLongPtr(hwnd, GWL_STYLE, WS_CHILD | WS_VISIBLE);
SetWindowPos(hwnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED);
}
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
std::tuple* result = reinterpret_cast(lParam);
TCHAR szClassName[256];
TCHAR szWindowName[256];
GetClassName(hwnd, szClassName, _countof(szClassName));
GetWindowText(hwnd, szWindowName, _countof(szWindowName));
if (!_tcscmp(szClassName, _T("WorkerW")))
{
HWND SDDV = FindWindowEx(hwnd, NULL, _T("SHELLDLL_DefView"), NULL);
if (SDDV)
{
HWND SLV32 = FindWindowEx(SDDV, NULL, _T("SysListView32"), _T("FolderView"));
std::get(*result) = SDDV;
std::get(*result) = SLV32;
std::get(*result) = hwnd;
return FALSE;
}
}
return TRUE;
}
std::tuple GetSDDV()
{
std::tuple P;
EnumWindows(EnumWindowsProc, reinterpret_cast(&P));
return P;
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... ktop-icons
Почему мой код не отображает окно под значками на рабочем столе? ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему этот код работает на рабочем столе, но не работает на Android в отладочной сборке?
Anonymous » » в форуме Android - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Я создаю код для создания файла прямо на рабочем столе; это безопасно? [закрыто]
Anonymous » » в форуме Python - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-