2016-04-08 21 views
0

Başka bir uygulamayı ikinci bir ekrana taşımaya çalışıyorum ve daha sonra C++'da tam ekran ayarlamak istiyorum.Uygulama tam ekranına geçmek için HWND düğmelerini kullanın

Uygulamadan HWND tanıtıcısını bir işlemler listesinden alıyorum ve sonra konumu, MoveWindow ile istediğim pencereden ayarlayabilirim. Bu mükemmel çalışıyor.

Uygulamayı tam ekran olarak ayarlamanın benzer bir yolu var mı? Sadece kendi uygulamanızı tam ekrana ayarlama hakkında bilgi bulabiliyorum. Ama bu durumda istediğim herhangi bir uygulamayı taşıyabilmek ve tam ekrana ayarlayabilmek istiyorum. (Bu mümkün olduğu kadarıyla, ancak amaca ihtiyacım var.)

Pencereyi hareket ettirdikten sonra Alt + Enter tuşlarına basarsam, istediğim şeyi yapar. Yani umarım bunu koddan yapabilirim?

DÜZENLEME: BTW ShowWindow'u denedim (windowToMove, SHOW_FULLSCREEN); Ancak bunu en üst düzeye çıkarmak gibi görünüyor, ancak ALT + ENTER ile benzer değil.

Yardımlarınız için şimdiden teşekkür ederiz!

+3

Tam ekran modunu tetiklemek için ikinci uygulama tarafından gösterilen bir API bulmanız gerekir. Aksi takdirde, iç durumu bütünüyle berbat olur. –

+0

Teşekkürler Ben zaten tek seçenek olacak bir duygu vardı. Ama emin değildim. –

cevap

2
BOOL IsWindowMode = TRUE; 
WINDOWPLACEMENT wpc; 
LONG HWNDStyle = 0; 
LONG HWNDStyleEx = 0; 

void FullScreenSwitch() 
{ 
    if (IsWindowMode) 
    { 
     IsWindowMode = FALSE; 
     GetWindowPlacement(HWNDWindow, &wpc); 
     if (HWNDStyle == 0) 
      HWNDStyle = GetWindowLong(HWNDWindow, GWL_STYLE); 
     if (HWNDStyleEx == 0) 
      HWNDStyleEx = GetWindowLong(HWNDWindow, GWL_EXSTYLE); 

     LONG NewHWNDStyle = HWNDStyle; 
     NewHWNDStyle &= ~WS_BORDER; 
     NewHWNDStyle &= ~WS_DLGFRAME; 
     NewHWNDStyle &= ~WS_THICKFRAME; 

     LONG NewHWNDStyleEx =HWNDStyleEx; 
     NewHWNDStyleEx &= ~WS_EX_WINDOWEDGE; 

     SetWindowLong(HWNDWindow, GWL_STYLE, NewHWNDStyle | WS_POPUP); 
     SetWindowLong(HWNDWindow, GWL_EXSTYLE, NewHWNDStyleEx | WS_EX_TOPMOST); 
     ShowWindow(HWNDWindow, SW_SHOWMAXIMIZED); 
    } 
    else 
    { 
     IsWindowMode = TRUE; 
     SetWindowLong(HWNDWindow, GWL_STYLE, HWNDStyle); 
     SetWindowLong(HWNDWindow, GWL_EXSTYLE, HWNDStyleEx); 
     ShowWindow(HWNDWindow, SW_SHOWNORMAL); 
     SetWindowPlacement(HWNDWindow, &wpc); 
    } 
} 

Bu kod pencereli pencereyi tam ekran ve geriye döndürür. (WINAPI ve pencere modunda hedef işlem başlatmaya gerek duyarsınız)

İlgili konular