Fenêtre avec ou sans bouton

Soyez le premier à donner votre avis sur cette source.

Vue 5 911 fois - Téléchargée 428 fois

Description

Suite à une question dans le forum, une petite source toute simple et sans prétention pour afficher une fenêtre avec ou sans bouton. Il s'agit de la même fenêtre à chaque fois, pas de deux fenêtre différentes.

Source / Exemple :


#include <windows.h>
#include "resource.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
BOOL CALLBACK mainWindow(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK fenetre2(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
BOOL ShowMyButton;
HINSTANCE hInst;
HWND hCtrl;

BOOL CALLBACK mainWindow(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
		
	switch(message) {
		case WM_INITDIALOG:
				return TRUE;
	
		case WM_COMMAND:
			switch(wParam) {

				case IDC_CLOSE:
				DestroyWindow(hWnd);
					return TRUE;

				case IDC_EXECUTE:
					
					if(SendMessage(GetDlgItem(hWnd,IDC_RADIO1),BM_GETCHECK,0,0) == BST_CHECKED)
						ShowMyButton= TRUE;
					if(SendMessage(GetDlgItem(hWnd,IDC_RADIO2),BM_GETCHECK,0,0) == BST_CHECKED)
						ShowMyButton= FALSE;

					return (int)DialogBox(hInst,MAKEINTRESOURCE(IDD_FENETRE2),NULL,fenetre2);

				default:
					return FALSE;
			}
	}

	return FALSE;
}

BOOL CALLBACK fenetre2(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){

	switch(message) {
	case WM_INITDIALOG:

		if(ShowMyButton){
			hCtrl = GetDlgItem(hWnd, IDC_BOUTON_A_AFFICHER);
			ShowWindow(hCtrl, SW_SHOW);}
			return TRUE;

	case WM_COMMAND:
		switch(wParam) {

			case IDC_CLOSE:
			DestroyWindow(hWnd);
				return TRUE;
		}
	}
	return FALSE;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	return (int)DialogBox(hInstance,MAKEINTRESOURCE(FORM_MAIN),NULL,mainWindow);
}

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

malik7934
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
2 -
D'accord... quand je dis que c'est la même fenêtre, pour moi ça veut dire que ça ne me change rien au schmilblik lorsque je la manipule car c''est, comme tu le soulignes, la même fonction qui la gère... bon...
magic_Nono
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1 -
un rapide coup d'oeil au cpte montre qu'il s'agit bien d'une autre fenetre....

l'instance est différente, mm si C la mm fonction qui gère les 2
++
Nono.
malik7934
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
2 -
Effectivement, mais c'est un choix de prog. Ca change rien dans cet exemple!
vecchio56
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7 -
Plutot que mettre ShowMyButton en global, ce serait aussi bien de le passer lors de la création de Dialog, en utilisant DialogBoxParam a la place de DialogBox

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.