Probleme avec une boite de dialogue

anonyme_man_in_this_world Messages postés 161 Date d'inscription samedi 25 juin 2005 Statut Membre Dernière intervention 1 août 2006 - 9 juil. 2005 à 02:14
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 9 juil. 2005 à 09:27
salut !!
ça sera simpa si vous m'aidiez a corriger ce code
*******************************************************************************
#include <windows.h>

#include "resource.h"

#include <commctrl.h>

#pragma comment(lib,"comctl32.lib")

HWND hTxtIp;

HWND handle;

HINSTANCE hInstance;

BOOL CALLBACK Dialog_Procedure(UINT message,
WPARAM wparam,
LPARAM lparam)
{
switch(message)
{
case WM_INITDIALOG:
{
INITCOMMONCONTROLSEX lpInitCtrls;
lpInitCtrls.dwSize = sizeof(LPINITCOMMONCONTROLSEX);
lpInitCtrls.dwICC = ICC_INTERNET_CLASSES;
InitCommonControlsEx(&lpInitCtrls);
hTxtIp = CreateWindowEx(WS_EX_CLIENTEDGE, WC_IPADDRESS, "", WS_CHILD | WS_VISIBLE,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
handle, NULL, hInstance, NULL);
UpdateWindow(hTxtIp);
return FALSE;
break;
}
case WM_COMMAND:
{
switch(LOWORD(wparam))
{
case ID_CONNECT:
{
MessageBox(handle,"a fen","e",0);
return true;
break;
}
default:
{
return FALSE;
}
}
return true;
break;
}
case WM_CLOSE:
{
exit(-1);
return true;
break;
}
default:
{
return FALSE;
}
}
return TRUE;
}
int WINAPI WinMain(HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpcmdLine,
int nCmdLine)
{
hInstance = hThisInstance ;
handle = CreateDialog(hThisInstance,MAKEINTRESOURCE(ID_DIALOG1),
NULL,Dialog_Procedure);
MSG message;
while(GetMessage(&message,NULL,0,0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
return 0;
}
********************************************************************************

voici l'erreur que le compilateur genere :
D:\Program Files\Microsoft Visual Studio\MyProjects\Client\main.cpp(75) : error C2664: 'CreateDialogParamA' : cannot convert parameter 4 from 'int (unsigned int,unsigned int,long)' to 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long
)'
*******************************************************************************
dans le fichier resource j'ai crée une boite dialogue composeé d'un cotrole

IP ADDRESS son id est ID_IP_ADDRESS et un BUTTON ID_CONNECT

merçi d'avance

6 réponses

cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 juil. 2005 à 02:34
Pas besoin de while(GetMessage(......)) dans ton WinMain c'est une dialog

Au message WM_INITDIALOG, on retourne un TRUE



Et tu peux utilisé DialogBox à la place de CreateDialog

DialogBox(hInstance, MAKEINTRESOURCE(ID_DIALOG1), HWND_DESKTOP, (DLGPROC)Window_Procedure);

void Aurevoir( void ); //Bonne journée
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 juil. 2005 à 02:35
Et au pire tu cast ton 4eme paramètre avec (DLGPROC)

Si il attend un DLGPROC et tu lui donne un BOOL ça craint un peu normal

void Aurevoir( void ); //Bonne journée
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 juil. 2005 à 02:38
Et au faite mdr, encore moi

ta Procedure il manque un truc...



Prototype d'une procédure : LRESULT CALLBACK Wnd_Proc(HWND, UINT, WPARAM, LPARAM);



Il manque le HWND pour toi

void Aurevoir( void ); //Bonne journée
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
9 juil. 2005 à 02:41
Les Admins vont me tuer mais bon c'est po grave, je suis la tête de turc ici c'est bien :'(:'(:'(

Donc quand tu veux fermer, utilise EndDialog(hWnd, 0);

void Aurevoir( void ); //Bonne journée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 juil. 2005 à 09:05
Euh si, besoin de while(GetMessage...) quand le dialog est créé avec CreateDialog
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 juil. 2005 à 09:27
WM_INITDIALOG faut retourner 1 pour un placement correct du focus.
C'est quoi ces 'break' derrière des 'return', aucune utilité.
C'est vraiment le souk ce code, efface et recommence.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous