Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch HEMEN TIKLA!
Alıntıdır.
Görsel başlık her şeyi anlatıyor zaten.
Nedir? :
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
client-source\EterLib\MSWindow.cpp dosyasında
Kod:
#include <windowsx.h>
Altına Ekle
Kod:
#ifdef ENABLE_WIN_DARKMODE
#include <dwmapi.h>
#pragma comment(lib, "dwmapi.lib")
#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE
#define DWMWA_USE_IMMERSIVE_DARK_MODE 20
#endif
#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE_OLD
#define DWMWA_USE_IMMERSIVE_DARK_MODE_OLD 19
#endif
static bool IsWindowsDarkModeEnabled()
{
DWORD value = 1;
DWORD size = sizeof(value);
LONG result = RegGetValueA(
HKEY_CURRENT_USER,
"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize",
"AppsUseLightTheme",
RRF_RT_REG_DWORD,
NULL,
&value,
&size
);
if (result != ERROR_SUCCESS)
return false;
return value == 0;
}
static void ApplyWindowTitleBarTheme(HWND hWnd)
{
if (!hWnd)
return;
BOOL dark = IsWindowsDarkModeEnabled() ? TRUE : FALSE;
HRESULT hr = DwmSetWindowAttribute(
hWnd,
DWMWA_USE_IMMERSIVE_DARK_MODE,
&dark,
sizeof(dark)
);
if (FAILED(hr))
{
DwmSetWindowAttribute(
hWnd,
DWMWA_USE_IMMERSIVE_DARK_MODE_OLD,
&dark,
sizeof(dark)
);
}
}
#endif
Daha sonra şu fonksiyonu bul :
Kod:
LRESULT CMSWindow::WindowProcedure(HWND hWnd, UINT uiMsg, WPARAM wParam, LPARAM lParam)
Şununla değiştir :
Kod:
LRESULT CMSWindow::WindowProcedure(HWND hWnd, UINT uiMsg, WPARAM wParam, LPARAM lParam)
{
#ifdef ENABLE_WIN_DARKMODE
switch (uiMsg)
{
case WM_CREATE:
ApplyWindowTitleBarTheme(hWnd);
break;
case WM_SIZE:
OnSize(wParam, lParam);
ApplyWindowTitleBarTheme(hWnd);
break;
case WM_SETTINGCHANGE:
if (lParam && !lstrcmpiA((LPCSTR)lParam, "ImmersiveColorSet"))
ApplyWindowTitleBarTheme(hWnd);
break;
case WM_ACTIVATEAPP:
m_isActive = (wParam == WA_ACTIVE) || (wParam == WA_CLICKACTIVE);
break;
}
return DefWindowProc(hWnd, uiMsg, wParam, lParam);
#else
switch (uiMsg)
{
case WM_SIZE:
OnSize(wParam, lParam);
break;
case WM_ACTIVATEAPP:
m_isActive = (wParam == WA_ACTIVE) || (wParam == WA_CLICKACTIVE);
break;
}
return DefWindowProc(hWnd, uiMsg, wParam, lParam);
#endif
}
Ayrıca bunun içine gel :
Kod:
bool CMSWindow::Create
Kod:
Şu satırlardan sonra:
if (!m_hWnd)
return false;
şunu ekleyin:
#ifdef ENABLE_WIN_DARKMODE
ApplyWindowTitleBarTheme(m_hWnd);
#endif
Ve tabii ki defines.h dosyasına #define ENABLE_WI#defineODE eklemeyi unutmayın.
Paylaşım için teşekkürler Bekay
Rica ederim, yorum için teşekkürler.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 11
- Görüntüleme
- 454
- Cevaplar
- 9
- Görüntüleme
- 426
