begin process at 2012 05 30 19:59:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

win32 et fenetrage


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

win32 et fenetrage

jeudi 20 mai 2004 à 22:06:12 | win32 et fenetrage

djl


je voudrais lancer une fentre win32 en pleine ecran mais sans changement de mode video (par exemple si la fenetre à un fond noir, l'ecran deviendra noir, le context graphique de la fentre fera la taille de l'ecran)

et je voudrai que la fenetre reste en fond, c'est à dire le contraire de "stay on top"

j'espere etre assez claire, merci d'avance
jeudi 20 mai 2004 à 23:02:17 | Re : win32 et fenetrage

theneoiceman


Pour metter ta fenetre en plein ecran je vais te dire la solution :
dans ta fonction CreateWindow (ou CreateWindowEx)
a l'endroit ou tu rentres les coordonnées de ta fenetre (c'est a dire le point x superieur gauche, le point y superieur gauche , la longueur et la largeur de la fenetre), tu passes ces parametres :
CreateWindow
(
...,
0, // pour l'abscisse du point superieur gauche
0, // pour l'ordonnee du coin superieur gauche
GetSystemMetrics(SM_CXSCREEN), // longueur
GetSystemMetrics(SM_CYSCREEN), // largeur
...
);

Voila voila
@+

Mess with the best, die like the rest
jeudi 20 mai 2004 à 23:15:56 | Re : win32 et fenetrage

djl


merci, c'est presque ca, en fait dans ce cas las la fentre est incluse dans l'ecran et on voit aussi la bar de titre et les contour, il faudrait en fait voir uniquement la zone de dessin (c'est une fenetre opengl)
jeudi 20 mai 2004 à 23:19:53 | Re : win32 et fenetrage

BruNews

Administrateur CodeS-SourceS

void InitInstance()
{
WNDCLASS wndclass;
memset(&wndclass, 0, sizeof(WNDCLASS));
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = AppWndProc;
wndclass.hInstance = hinst;
wndclass.hbrBackground = (HBRUSH) GetStockObject(BLACK_BRUSH);
wndclass.lpszClassName = szappname;
if(!RegisterClass(&wndclass)) return;
hwndapp = CreateWindowEx(WS_EX_TOPMOST,
szappname, 0,
WS_POPUP | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
0, 0,
GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),// Size
0, 0, hinst, 0);
}

ciao...
BruNews, Admin CS, MVP Visual C++
jeudi 20 mai 2004 à 23:23:26 | Re : win32 et fenetrage

ymca2003

un exemple de code en MFC (transposable en Win32 assez facilement) :


Comment passer un plein écran ?
Le mode sans barre de titre, ni menu... Connu aussi sous le nom de "Full Full Screen".

Déclarer WINDOWPLACEMENT m_WindowPlacement ; dans CMainFrame et reproduire le code ci-dessous.

void CMainFrame::OnViewFullScreen()
{
// read system metrics
int cyCaption = ::GetSystemMetrics ( SM_CYCAPTION ) ;
int cyMenu = ::GetSystemMetrics ( SM_CYMENU ) ;
int cxFrame = ::GetSystemMetrics ( SM_CXFRAME ) ;
int cyFrame = ::GetSystemMetrics ( SM_CYFRAME ) ;
int cxScreen = ::GetSystemMetrics ( SM_CXSCREEN ) ;
int cyScreen = ::GetSystemMetrics ( SM_CYSCREEN ) ;

WINDOWPLACEMENT NewWindowPlacement ;

if ( ! m_bFullScreen )
{
GetWindowPlacement ( & m_WindowPlacement ) ;
NewWindowPlacement = m_WindowPlacement ;
NewWindowPlacement.showCmd = SW_SHOWNORMAL ;
// run the app full screen
ShowWindow ( SW_SHOWMAXIMIZED ) ;

// now run the app full full screen
NewWindowPlacement.rcNormalPosition =
CRect (
-cxFrame,
- ( cyFrame + cyCaption + cyMenu ) ,
cxScreen + 2 * cxFrame ,
cyScreen + 2 * cyFrame + cyCaption + cyMenu ) ;
}
else
{
NewWindowPlacement = m_WindowPlacement ;
} ;

m_bFullScreen = ! m_bFullScreen ;
SetWindowPlacement ( & NewWindowPlacement ) ;
}

void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
// read system metrics
int cyCaption = ::GetSystemMetrics ( SM_CYCAPTION ) ;
int cyMenu = ::GetSystemMetrics ( SM_CYMENU ) ;
int cxFrame = ::GetSystemMetrics ( SM_CXFRAME ) ;
int cyFrame = ::GetSystemMetrics ( SM_CYFRAME ) ;
int cxScreen = ::GetSystemMetrics ( SM_CXSCREEN ) ;
int cyScreen = ::GetSystemMetrics ( SM_CYSCREEN ) ;

CFrameWnd::OnGetMinMaxInfo ( lpMMI ) ;

if ( m_bFullScreen )
{
lpMMI->ptMaxPosition.x = - cxFrame ;
lpMMI->ptMaxSize.x =
lpMMI->ptMaxTrackSize.x = cxScreen + 2 * cxFrame ;
lpMMI->ptMaxPosition.y = - ( cyFrame + cyCaption + cyMenu ) ;
lpMMI->ptMaxSize.y =
lpMMI->ptMaxTrackSize.y =
cyScreen + 2 * cyFrame + cyCaption + cyMenu ;
} ;
}


pour le contraire de Stay on top, peut-être SetWindowPos avec HWND_BOTTOM (sans doute à remetre dès que la fenêtre devient active).
jeudi 20 mai 2004 à 23:29:48 | Re : win32 et fenetrage

DeAtHCrAsH

Si tu fais ca a l'aide de l'EDI de VC++, t'as juste a modifier le parametres "Border" de ta fenetre en "None" puis ensuite tu utilise la méthode de theneoiceman pour la mettre en plein écran...
La méthode de BruNews reste quand meme beaucoup plus pratique ... Tu as direcetement la couleur de fond ce qui t'evite de traiter l'événement WM_PAINT et d'initailiser un pinceau ....

A++ et bonne prog....

Samir
jeudi 20 mai 2004 à 23:44:44 | Re : win32 et fenetrage

djl


ok merci à tous, le truc de brunews marche perfect


Cette discussion est classée dans : ecran, fenetre, win32, fentre, fenetrage


Répondre à ce message

Sujets en rapport avec ce message

win32 et sous-classement [ par mozert ] hi.mmm... mwai.. voila mon probleme..le sous-classement (subclassing)..est-il possible de sous-classer une fenetre appartenant à un processus differen Resolution [ par machistador ] Bonjour, j'aimerais savoir comment changer la resolution de l'ecran sur une fenetre MS DOS en C sous Visual. J'aimerais aussi savoir s'il est possible redimensionne une fenetre en visual c++ 6.0 [ par maesp ] mon probleme est le suivant :quand j'agrandis ma fenetre les coposants qui y sont placé ne suive pas l'agrandissement de la fenetreje me retrouve avec Fermer une fentre Opengl [ par iilyma ] bonjour, je cherche comment fermer une fenetre opengl tout en conservant la fenetre dos active. J'ai essayé GlutWindowDestroy mais cela provoque une e Style d'un fenetre Win32 [ par JCDjcd ] Je voufrait bien savoir quel style il faut mettre pour que ma fenetre ne soit pas redimmensionnable !!!<img src=/imgs2/smile_sh fenetre en plein ecran [ par tcok ] slt a tous(re slt pour BruNews)je reviens sur mon probleme qui me donne beaucoup de fil a retordre..;g ma fenetre en plein ecran (donc elle cache la b [WIN32] CallBack différente pour chaque CreateWindow [ par Arnotic ] Bonjour, Je recherche actuellement le moyen d'avoir une callback différente à chaque fois que je créer une fenetre grace à CreateWindow ou CreateWin recupérer le bitmap d'une fenetre sous borland c++ 5 [ par lele94 ] Je voudrais faire une copie d'ecran ou de fenetre sans passer par la touche impr ecran.je pensais y arriver avec des fonctions strectchDIbits, etc .. Effacer le contenu d'une fenetre... [ par Galmiza ] Salut,Actuellement, pour effacer l'ecran je trace un rectangle plein blanc sur la fenetre.Or bizarrement, cette methode fait anormalement ramer le PC [Win32] changer le mode video [ par djl ] voila, j'e cree une fenetre d'une certaine resolution (en plein ecran ou non) et je voudrait savoir comment changer le mode video(en fait soit la tail


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales