accès aux groupes de discussion, consultation et publication d'articles, recherche de "newsgroups"...
membres, identifiez-vous
é-mail Mot de passe
nouveau ? mot de passe oublié ?
Chargement... Chargement en cours...

Groupes français belges canadiens suisses internationaux Nétiquette
Échangez opinions et commentaires dans les forums de discussion.

Effet désagréable lors du redimentionnement

 [  Nouvelle Discussion Nouvelle discussion  |  Répondre au groupe Répondre au groupe  |  fr.comp.os.ms-windows.programmation ] 

Retour : Accueil du site fr comp os ms-windows programmation   charte stats de ce groupe


  Sujet:   Effet désagréable lors du redimentionnement  
 De: mynameis_mic...@hotmail.fr (Michel)
 Groupes: fr.comp.os.ms-windows.programmation
 Organisation: http://groups.google.com
 Date: 02. May 2008, 13:58:57
Bonjour.
Avec un programme standard utilisant l'API et dont l'affichage prend
un peu de temps, j'ai remarqué qu'on a un effet plutot moche lorsqu'on
redimentionne la fenêtre vers le haut ou vers la gauche : la fenêtre
est comme transparente du coté opposé pendant un intervalle très
court.
Cet effet est d'autant plus génant qu'il ne touche pas seulement
l'espace client, mais également la barre du haut.
Pourtant un background est utilisé, ce qui normalement réduit les
effet de transparence.
Comment faire pour l'éviter?

Voila le code sur lequel je me base :


#include <windows.h>

HINSTANCE hInstance;

LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam,
LPARAM lParam);

int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance,
LPSTR lpszArgument, int nFunsterStil)
{
	HWND hWnd;
	MSG messages;
	WNDCLASSEX wincl;
 	RECT Client;

	UNREFERENCED_PARAMETER (hPrevInstance);
	UNREFERENCED_PARAMETER (lpszArgument);

	hInstance = hThisInstance;

	// Infos importantes
	wincl.hInstance = hInstance;
	wincl.lpszClassName = "Classe principale";
	wincl.lpfnWndProc = WndProc;
	wincl.style = 0;
	wincl.cbSize = sizeof (WNDCLASSEX);

	// Icones et curseurs par défaut
	wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
	wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
	wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
	wincl.lpszMenuName = NULL;
	wincl.cbClsExtra = 0;
	wincl.cbWndExtra = 0;
	wincl.hbrBackground = GetStockObject (BLACK_BRUSH);

	if (!RegisterClassEx (&wincl)) {
		return EXIT_FAILURE;}

 	Client.left = 0;
	Client.top = 0;
	Client.right = 775;
	Client.bottom = 575;
	AdjustWindowRectEx (&Client, WS_OVERLAPPEDWINDOW, TRUE, 0);

	hWnd = CreateWindowEx (
		0,
		"Classe principale",
		"Fenêtre",
		WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, CW_USEDEFAULT,
		Client.right - Client.left, Client.bottom - Client.top,
		NULL, NULL, hInstance, NULL);

	if (!hWnd) {
		return EXIT_FAILURE;}

	ShowWindow(hWnd, nFunsterStil);
	UpdateWindow(hWnd);

	while (GetMessage (&messages, NULL, 0, 0))
	{
		TranslateMessage(&messages);
		DispatchMessage(&messages);
	}

	return messages.wParam;
}

LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam,
LPARAM lParam)
{
	HDC hDC;
	PAINTSTRUCT ps;

	switch (message)
	{
		case WM_DESTROY:
			PostQuitMessage (0);
			return TRUE;

		case WM_PAINT:
			// Affiche le bitmap.
			hDC = BeginPaint (hWnd, &ps);
			Sleep (20);
			EndPaint (hWnd, &ps);
			return TRUE;

		default:
			return DefWindowProc (hWnd, message, wParam, lParam);
	}
}


DateSujet  Auteur
02.05.
*   Effet désagréable lo
Michel
02.05.
`* Re: Effet désagréable lo
louis
02.05.
 `- Re: Effet désagréable lo
Michel
Groups Explorer contact votre avis comment ça marche? rechercher un groupe suggérer un groupe abuse accueil du site   Imprimer cette page   Envoyer cette page à un(e) ami(e)