begin process at 2012 05 29 15:12:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

pb affichage dialog box en mode release


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb affichage dialog box en mode release

mercredi 7 juillet 2004 à 21:06:26 | pb affichage dialog box en mode release

naoem

bonjour,
je m'explique: j'ai fait un programme avec un menu qui ouvre des dialogbox (jusqu'ici tout va bien)...

en mode debug, il n'y a pas de pb, les fenetres s'ouvrent correctement..
des que je passe en mode release, il n'y a plus que les champs qui s'affichent et le background de la fenetre associée est blanc. je me doute que ca vient du style de la fenetre ou bien du handle mais je trouve pas...

le code est tout bête:

DialogBox (hInst, "DP_WRITE_DATA",hWnd, (DLGPROC)DP_OutSlvProc);

et la def de la fonction DP_OutSlvProc:
char DP_OutSlvProc (HWND hDlg, UINT message, WPARAM wParam, LONG lParam)

je fait bien l'init dialog (WM_INITDIALOG) dedans...

merci
mercredi 7 juillet 2004 à 21:22:11 | Re : pb affichage dialog box en mode release

AlexMAN

Membre Club
Montre nous ta DlgProc plz...

Merci ++

Alhexman
mercredi 7 juillet 2004 à 21:39:56 | Re : pb affichage dialog box en mode release

BruNews

Administrateur CodeS-SourceS
et commence aussi par virer le cast (DLGPROC) dans:
DialogBox(hInst, "DP_WRITE_DATA", hWnd, DP_OutSlvProc);
S'il y en a besoin, signe que ta dlgproc est mal prototypee, t'obligera a en mettre une correcte.

ciao...
BruNews, Admin CS, MVP Visual C++
mercredi 7 juillet 2004 à 21:52:43 | Re : pb affichage dialog box en mode release

naoem


voila la fonction :

char DP_OutSlvProc (HWND hDlg, UINT message, WPARAM wParam, LONG lParam)

{
char result;
static HWND hComb,CyclicHwnd;
static unsigned int OutLen;
WORD i;
char CharBuf[1000];
long SlvAdr_l;
char *achHlp;


result = 1; /* Default value */

switch (message)
{
case WM_INITDIALOG:
{

/* set default output length */

OutLen = 255;
wsprintf (CharBuf,"1 ");
SendMessage ( GetDlgItem(hDlg,IDC_LENGTH),
WM_SETTEXT,
0,
(LPARAM)(LPSTR) CharBuf);

/* Set Focus */

hComb = GetDlgItem (hDlg, IDC_COMBO_WR_ADDR_SLV);
SetFocus (hComb);

for (i=0;i<126;i++)
{
wsprintf (CharBuf,"Slv %d",i);

if (Init_SlvBuff[i] == DPR_SLV_READY)
{
SendMessage (hComb,
CB_ADDSTRING,
0,
(LPARAM)(LPSTR)CharBuf);
}
}


/* Default in edit control */

wsprintf (CharBuf,"00 ");
SendMessage ( GetDlgItem(hDlg,IDC_DATA_WR),
WM_SETTEXT,
0,
(LPARAM)(LPSTR) CharBuf);

result = 0;
break;
}

case WM_COMMAND:
{
switch (LOWORD(wParam))
{

case IDC_LENGTH:
{
unsigned int k;

/* Get output bytes from edit control */
SendMessage (GetDlgItem(hDlg,IDC_LENGTH),
WM_GETTEXT,
10, /* max. text length */
(LPARAM)(LPSTR) CharBuf);
OutLen = atoi (CharBuf);

if (OutLen > 246)
{
OutLen = 246;
}
if (OutLen == 0)
{
OutLen = 1;
}

/* Show Default Values in edit control */

wsprintf (CharBuf,"00 ");
for (k=1;k<OutLen;k++)
{
lstrcat (CharBuf, "00 ");
}
SendMessage ( GetDlgItem(hDlg,IDC_DATA_WR),
WM_SETTEXT,
0,
(LPARAM)(LPSTR) CharBuf);
break;
}

case IDC_COMBO_WR_ADDR_SLV:
{
char Index;
if (HIWORD (wParam) == LBN_DBLCLK)
{
/* the same as IDOK */
PostMessage (hDlg,
WM_COMMAND,
IDOK,
(LPARAM) 0);
break;
}

if (HIWORD(lParam) == LBN_SELCHANGE)
{
Index = (char)SendMessage (hComb,
CB_GETCURSEL,
10,
(LPARAM)(LPSTR) CharBuf);
if (Index == CB_ERR)
{
break;
}
SendMessage (hComb,
CB_GETLBTEXT,
Index,
(LPARAM)(LPSTR) CharBuf);
}
break;
}

case IDC_BUTTON_WRITE:
{
/* Get actual string of the edit control */
SendMessage (hComb,
WM_GETTEXT,
10, /* max. text length */
(LPARAM)(LPSTR) CharBuf);

/* Slave address valid ? */

if ( strnicmp((const char far *)CharBuf,
(const char far *)"Slv ",
(size_t) 4 ) != 0)
{
/* invalid string */
MessageBox(hDlg,
(LPSTR) "address is out of range or unknown",
(LPSTR)"wrong slave address!",
MB_OK );

return (result);
}

achHlp = &CharBuf[3];
SlvAdr_l = strtoul ((char far *)&CharBuf[4],&achHlp,10);
if ( ((SlvAdr_l == 0) && (achHlp == &CharBuf[4])) ||
(SlvAdr_l > 125)
)
{
/* invalid string */
MessageBox(hDlg,
(LPSTR) "address is out of range or unknown",
(LPSTR)"wrong slave address!",
MB_OK );
return (result);
}

Slave_add_g = (char)SlvAdr_l;

/* Get output bytes from edit control */
SendMessage (GetDlgItem(hDlg,IDC_DATA_WR),
WM_GETTEXT,
900, /* max. text length */
(LPARAM)(LPSTR) CharBuf);
if (GetStringValue ((char *)Slv_Module[Slave_add_g].buf_2_write ,(char *)CharBuf, (char)OutLen) == 0)
{
MessageBox( hDlg,
(LPSTR) "default value (0) is assumed for all output bytes",
(LPSTR)"Wrong syntax for output bytes!",
MB_OK );
for (i = 0; i < OutLen;i++)
{
Slv_Module[Slave_add_g].buf_2_write[i] = 0;
}
}

Slv_Module[Slave_add_g].nb_octets = OutLen;

/* Set the data to the adressed slave */
Send_Data ();

break;
}


case IDCANCEL:
case IDOK:
{
EndDialog(hDlg,IDOK);
break;
}

default:
{
result = 0;
break;
}
}
}

default:
{
result = 0;
}
}
return (result);
}


je reessaie demain..


Cette discussion est classée dans : pb, dialog, release, mode, dp


Répondre à ce message

Sujets en rapport avec ce message

plusieurs dialog [API] [ par Xs ] voila, je faisait un prog, et pis tout d'un coup, j'ai eu envie de changer son design, qui été deja sous API WIN32.ce design consiste a avoir une dial mode release [ par itzahk ] Salut,Je ne sais pas comment il faut procéder pour réaliser un executable unique lors de la creation du logiciel.Lorsque je compile le programme en mo pb avec tc++ 3.0 [ par djl ] en fait lorsque g passe en mode plein ecran le clavier et la souris ne repondent plus. comme mes prog sont en plein ecran g pe plus rien faire(pas de Pb Dialog et icone barre des titre [ par Viper31 ] salut je voulais connaitre le moyen le plus simple pour mettre un icone dans la barre des titres d'une boite de dialog ! J'ai deja regardé dans le man Pb code source CMphSock [ par xaviou ] Salut.J'ai téléchargé le projet "CMphSock" : Utilisation de Winsock sans MFC.Je l'ai compilé en mode Debug : tout est OKJ'ai essayé en mode Release : Pb avec l'affichage dans un dialog [ par marcel6566 ] VC++6 - MFCJ'ai créé une boite à dialogue lié à la class CIMAGE et je voudrais afficher l'image IDB_BITMAP1 dedans.J'ai défini CBitmap image;J'ai rajo Debug & Release [ par hilairenicolas ] Bonjour à tous,j'ai un probleme étrange. Je developpe un .ocx qui n'a pas le meme comportement quand je le compile en mode debug ou en mode release. E Gros problème de compilation [ par dizze ] Bonjour j'ai un gros gros problème de compilation, je dois rendre un projet en mode release (donc le .exe). Quand je le génère en mode debug ds l'envi Debug | Release [ par 3psilon ] Slt,J'aurais aimer avoir quelques informations sur les modesdebug et release de VC 6.J'ai bien compris que, en mode debug, le compilo ajoute des infor Pb avec VC [ par kokoariko ] Lus',1/Sous Visual C++, j'ai créé différents contrôles (CListBox, CProgressBar, CStatic ...) sur une fenêtre Dialog, grace à MFC ClassWizard.Tout se p


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,356 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales