begin process at 2012 05 30 19:58:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

GUI

 > 

[C win32] DialogBox qui ne s'affiche pas


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

[C win32] DialogBox qui ne s'affiche pas

jeudi 23 juin 2011 à 23:28:56 | [C win32] DialogBox qui ne s'affiche pas

FineLizzyX

Bonjour,
Voulant éviter de faire des exécutables de taille énorme, qui se traînent et qu'il faut accompagner de dll énormes elles aussi, je développe en c avec les api win 32 dans Code::Block et avec MinGW. (J'explique car j'ai vu des questions à ce sujet : je souhaite rester proche du système. Et puis, je ne me suis pas plongé dans la programmation objet).
Je rencontre un problème d'affichage d'une bête boite de dialogue.
Déclaration dans le fichier rc :
IDD_NEWCOM DIALOG 0, 0, 317, 118
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_VISIBLE | WS_POPUP | WS_SYSMENU

etc...

Dans la "callback" de la fenêtre principale, je lance DialogBox lorsque l'on appuie sur un bouton :
DialogBox(hinst, (LPCTSTR)IDD_NEWCOM, hwnd, (DLGPROC)NewCommandeProc);
(j'ai essayé avec MAKEINTRESOURCE(IDD_NEWCOM) = pareil)

La "callback" de la boite dialogue est comme ceci :
LRESULT CALLBACK NewCommandeProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
hfontTitre = CreateFont(-24, 0, 0, 0, 700, FALSE, FALSE, FALSE, 1, 400, 0, 0, 0, "Titre Dlg");
SendMessage(GetDlgItem(hwndDlg, IDC_STATIC100), WM_SETFONT, (WPARAM)hfontTitre, FALSE);
SetDlgItemText(hwndDlg, IDC_STATUT_COM, "EN PREPARATION");

return TRUE;

case WM_CTLCOLORSTATIC: //Pour mettre le titre en rouge
switch(GetDlgCtrlID((HWND)lParam))

etc...

La boite de dialogue ne s'affiche pas !

Un MessageBox pour test dans le message WM_INITDIALOG ne s'affiche pas...

Curieusement, sur un autre PC sur lequel je partage ce petit développement, elle s'affiche !!


C'est le thème de Windows XP qui pose problème ; ils sont différents sur les 2 PC : l'un en thème XP, l'autre en thème win98.

Merci pour vos lumières...


jeudi 23 juin 2011 à 23:30:26 | Re : [C win32] DialogBox qui ne s'affiche pas

FineLizzyX

La phrase sur le thème est une question, pas une affirmation ; j'ai oublié le ?
samedi 25 juin 2011 à 21:11:26 | Re : [C win32] DialogBox qui ne s'affiche pas

FineLizzyX

Bonjour,

J'ai trouvé la raison mais je ne sais pas comment résoudre.

Il s'agit de la déclaration d'un contrôle "DATETIMEPICKER" dans le fichier ressources. La compilation fonctionne mais à l'exacution le programme ne parvient pas à initialiser ce contrôle et un message de destruction de la boîte de dialogue est donc envoyé.

Que dois-je déclarer et où le déclarer pour que cette classe de contrôle soit connue à l'exécution ?

J'ai suivi la piste de la fonction "InitCommonControlsEx". Bien que l'include <commctrl.h> soit déclaré, je me fais jeter sur cette fonction et sur le type de données INITCOMMONCONTROLSEX. Je n'y comprends plus rien...

Merci d'avance !
samedi 25 juin 2011 à 21:37:40 | Re : [C win32] DialogBox qui ne s'affiche pas

FineLizzyX

Trouvé !
Plein de choses à faire !
- Dans le programme principal :
#include <commctrl.h>
#pragma comment(lib, "comctl32.lib");

- Dans la fonction WinMain :
InitCommonControls();

- Dans les options du linker :
-lcomctl32
J'ai en fait ajouté comctl32 dans la liste des librairies à linker.

Merci pour votre écoute !!

^_^


Cette discussion est classée dans : affiche, wm, ds, false, dialogbox


Répondre à ce message

Sujets en rapport avec ce message

changer le nom du prog qui s'affiche ds la barre des tache ( builder ) [ par lanfeust41 ] et bien tout est dans le titre : comment change t'on le nom qui s'affiche dans la barre des tachesla proprité caption de la form ne change que le le n Problème pour importer une DialogBox depuis une DLL [ par Kheo ] Afin de rendre mon soft skinable j'ai exporté toute les ressources de mon projet vers une DLL que j'imoprte au debut de mon logiciel avec un LoadLibra DialogBox qui ne s'affiche que sur mon PC [ par CyberP ] J'ai créé un programme dont l'interface est uniquement composée d'une dialogbox. Mais quand je donne le programme à quelqu'un d'autre sur le net (je n image qui ne s'affiche pas dans une zone image [ par pidoumtimo ] hello.J'ai un pb d'affichage de bitmap dans une dialogue box.La situation est la suivante.Une premiere dialogue box est lancée. Par un clik sur un bou Simple Click Double click Bouton Pressé Bouton Relaché ? [ par mcallan ] Bonjour,   Comment gerer en API Win32 (C) les evenements souris via les WM_ (WM_LBUTTONDOWN ...)sachant que je voudrais recuperer differents etats du Popup dans un popup [ par CyberP ] J'ai créé un programme dont la seule fenêtre est une DialogBox. J'ai rajouté une autre DialogBox pour le "A propos de" mais celle-ci ne s'affiche pas Screenmate defectueux [ par anthraxx ] Anthrax ignisque -- Le charbon et le feu J'essaye de faire un screenmate (une petite bestiole se promenant sur les fenetres), mais n'etant pas tres ex tres urgent:ouverture d'unfichier txt et ranger valeur ds tableaux [ par spartacus ] Bonjour a tous cux qui liront ce message et merci a ceux qui y repondront!Voila je debute en c++ et je voudrait lire unn fichier txt contenant des ent JPG dans une DialogBox avec les MFC [ par ZeGot ] Bonjour,Je cherche à afficher une image JPG dans une dialog box (J'utilise les MFC), cette image devant pouvoir être changée par le programme (Ex : L' DialogBox [ par sebastienbro ] Bonjour,je voudrai affiché un dialogue de façon modale, avec DialogBox. Comment on fé pour récupérer la handle du dialogue créer pour ensuite, utilise


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 0,686 sec (3)

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