C Tam Ekran Yapma Engelleme
Giriş
Tam ekran modu, uygulamaların veya oyunların tüm ekranı kaplamasını ve diğer pencerelerin veya görev çubuğunun görünmemesini sağlayan bir özelliktir. Bu, sürükleyici bir deneyim sunabilir, ancak bazı durumlarda tam ekran moduna geçmeyi engellemek gerekebilir. Bu makale, C programlama dilinde tam ekran yapma özelliğini nasıl devre dışı bırakabileceğinizi açıklayacaktır.
Windows API’si Kullanma
Windows işletim sisteminde, tam ekran modunu kontrol etmek için kullanılabilecek birkaç Windows API işlevi vardır. Bu işlevler, Windows Başlık Çubuğu ve Kenarlıkları (Windows Header and Border) (WHB) API’sinin bir parçasıdır.
SetLayeredWindowAttributes işlevi, bir pencerenin katmanlı pencere özelliklerini ayarlamak için kullanılır. Bu işlevi, pencereyi katmanlı bir pencere olarak ayarlayarak ve WS_EX_LAYERED genişletilmiş pencere stilini ekleyerek tam ekran modunu devre dışı bırakabilirsiniz.
“`c
include
BOOL DisableFullscreen(HWND hWnd)
{
BOOL result = FALSE;
// Pencereyi katmanlı bir pencere olarak ayarla
result = SetLayeredWindowAttributes(hWnd, 0, 255, LWA_ALPHA);
// WS_EX_LAYERED genişletilmiş pencere stilini ekle
if (result)
{
DWORD dwExStyle = GetWindowLong(hWnd, GWL_EXSTYLE);
dwExStyle |= WS_EX_LAYERED;
result = SetWindowLong(hWnd, GWL_EXSTYLE, dwExStyle);
}
return result;
}
“`
DirectX Kullanma
DirectX, oyun geliştirme için kullanılan bir API’dir. DirectX’in D3DPRESENT_PARAMETERS yapısı, tam ekran modunu kontrol etmek için kullanılabilir.
D3DPRESENT_PARAMETERS yapısının Windowed üyesini TRUE olarak ayarlayarak tam ekran modunu devre dışı bırakabilirsiniz.
“`c
include
BOOL DisableFullscreen(LPDIRECT3D9 pD3D, HWND hWnd)
{
BOOL result = FALSE;
// D3DPRESENT_PARAMETERS yapısını oluştur
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp, sizeof(D3DPRESENT_PARAMETERS));
// Windowed üyesini TRUE olarak ayarla
d3dpp.Windowed = TRUE;
// Cihazı yeniden oluştur
result = pD3D->Reset(&d3dpp);
return result;
}
“`
Faydalı Siteler ve Dosyalar
- Windows Başlık Çubuğu ve Kenarlıkları (WHB) API’si
- DirectX D3DPRESENT_PARAMETERS Yapısı
- Tam Ekran Yapma Engelleme Örneği
Sonuç
Bu makalede, C programlama dilinde tam ekran yapma özelliğini nasıl devre dışı bırakabileceğinizi açıkladık. Windows API’si veya DirectX kullanarak bu özelliği devre dışı bırakabilirsiniz. Bu teknikler, tam ekran moduna geçmeyi engellemeniz gereken uygulamalar veya oyunlar geliştirirken faydalı olabilir.