Customisation de controles automatique ou application de theme perso (win 32)

Description

Bon c'est encore un projet en cours de developpement, ce sera une librairie permettant d'appliquer des themes perso sur des dialogs ou des fenetres en quelques commandes, la gestion des controles elle ne change pas, la librairie ne fera que changer les affichages.

Il n'est pas fini mais montre plusieurs techniques ( Ownerdraw, Customdraw , Subclassing , ....)

En fait j'ai deja fini ce projet mais sous forme de dll pour une application et j'avais obtenu le resultat suivant http://nsrn1.free.fr/Images/custom.jpeg et la le je recommence tout.

Ma petite fierté sont les bouttons yingyang, 2 bouttons entrelacés. Mais les graphismes sont pourris a cause des convertions DIB/pixel que je ne gere pas.

Elle gere au moins les formats d'images BMP JPG GIF.

Source / Exemple :


int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
	HWND hDlg;
	MSG msg;

	//pour les controles avancés
	InitCommonControls();

	//chargement du theme
	loadTheme("theme1\\theme.xml");

	//creation du dialog
	hDlg=CreateDialog(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),HWND_DESKTOP,(DLGPROC)MainProc);

	ShowWindow(hDlg,SW_SHOW);

	while(GetMessage(&msg,0,0,0)==TRUE)
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	//liberation de la memoire
	UnloadCustomDll();

	return 0;
}

LRESULT CALLBACK MainProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam)
{

	int Select;

	//traitement
	LRESULT res = traitement(Dlg,message,wParam,lParam);
	if (res) return res;

	switch(message)
	{

		case WM_INITDIALOG:{
			//le skin
			Customwin(Dlg);
			MakeScrooll(hlb);
		
			return true;
		}
		break;

	}

	return false;
}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.