2009-12-02 10 views
1

Je souhaite créer une fenêtre en plein écran (écran de veille) avec MFC? Comment créer une telle fenêtre plein écran dans MFC? J'ai essayé de créer l'application win32 et je suis capable de créer le plein écran le plus haut de la fenêtre mais je veux créer en utilisant MFC tellement plus tard je peux mettre différents contrôles de MFC sur cette fenêtre?Comment créer une fenêtre en plein écran avec MFC?

S'il vous plaît aidez-moi.

Merci, Jim.

Répondre

1

Vous devriez être en mesure d'adapter le code exemple ici pour faire ce que vous voulez:

MSDN: Initializing a dialog box

+0

Cet exemple va certainement fonctionner pour moi. mais pour cela je devrai écrire la méthode WndProc. puis-je utiliser WndProc avec l'application basée sur le dialogue MFC? Comment? – Jim

+0

ok je l'ai eu. WndPRoc est enveloppé dans le cadre MFC. L'application MFC fonctionne sur le mappage des messages. donc je vais écrire du code dans la routine onInitDialog. Ai-je raison? – Jim

+0

C'est correct. Faites toute votre initialisation dans 'OnInitDialog()'. –

1

Je pense que la suppression de la frontière de la ressource de dialogue et montrant la fenêtre maximisée (ShowWindow(SW_SHOWMAXIMIZED)) devrait faire l' emploi. Pour la première utilisation, utilisez le style System Modal dans la boîte de dialogue.

2

Je le fais avec une application Dialog Box. Dans les propriétés de l'éditeur de ressources pour la ressource de boîte de dialogue, définissez Border = None et Title Bar = False pour éliminer tous les éléments de bordure. En OnInitDialog, utilisez les touches suivantes pour redimensionner la boîte de dialogue à l'ensemble du bureau:

CRect rcDesktop; 
rcDesktop.left = GetSystemMetrics(SM_XVIRTUALSCREEN); 
rcDesktop.right = rcDesktop.left + GetSystemMetrics(SM_CXVIRTUALSCREEN); 
rcDesktop.top = GetSystemMetrics(SM_YVIRTUALSCREEN); 
rcDesktop.bottom = rcDesktop.top + GetSystemMetrics(SM_CYVIRTUALSCREEN); 
MoveWindow(rcDesktop, FALSE); 

Ce code fonctionne sur plusieurs moniteurs, contrairement à maximiser la fenêtre.

Pas besoin de vous soucier de faire de la fenêtre la plus haute, Windows l'affichera sur un bureau dédié sans aucune autre fenêtre présente.

+1

Parfait. Toutefois, si j'ai deux moniteurs, mais je veux définir en plein écran pour un seul moniteur, comment le faire? Merci d'avance – user8264

+0

@ user8264 vous devez obtenir les coordonnées du moniteur et l'utiliser pour MoveWindow. –

+0

@ user8264: si vous voulez passer en plein écran sur le moniteur principal: RECT rcDesktop; GetWindowRect (GetDesktopWindow(), & rcDesktop); MoveWindow (hWnd, rcDesktop.left, rcDesktop.top, rcDesktop.right, rcDesktop.bottom, FALSE); – andreaciri

Questions connexes