Fenêtre avec ou sans bouton

0/5 (4 avis)

Vue 6 190 fois - Téléchargée 528 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 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
24 sept. 2004 à 15:15
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
24 sept. 2004 à 15:09
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 1154 Date d'inscription mardi 9 septembre 2003 Statut Membre Dernière intervention 15 août 2009 17
23 sept. 2004 à 18:31
Effectivement, mais c'est un choix de prog. Ca change rien dans cet exemple!
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 12
23 sept. 2004 à 18:28
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.