begin process at 2012 05 29 18:32:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Pb d'image sur un bouton (WIN32 et API)


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

Pb d'image sur un bouton (WIN32 et API)

mardi 19 avril 2005 à 14:41:38 | Pb d'image sur un bouton (WIN32 et API)

skirby

Bonjour à tous,

je sais qu'il existe déjà des posts sur ce sujet. D'ailleurs mon code s'en inspire.
Mais voila, malgrè la lecture de ceux ci je n'arrive toujours pas à faire afficher une image (bitmap) sur mon bouton
J'ai essayé plusieurs méthodes mais aucune ne semble fonctionner.
En fait SendMessage ou SendDlgItemMessage renvoi toujours NULL. Du coup je n'arrive pas à avoir mon image.
La fonction LoadBitmap semble retourner un handle correct dou coup je bloque complètement

Je travail avec Dev-C++ 4.9.9.2 sous Windows 2000 Pro sp4.
Mon fichier ressource à était crée via ResED

J'ai posté les 3 trois fichiers de mon projet de test.

Si quelqu'un pouvais me dépanner, se serait vraiment cool.

Merci d'avance pour votre aide.


test_dlg.h :
-------------

#define IDD_DLG_MAIN 1000
#define IDC_BTN_MYBITMAP 1001
#define MY_BITMAP 10001

/*************************************************************************/

test_dlg.rc :
-------------

#define IDD_DLG_MAIN 1000
#define IDC_BTN_MYBITMAP 1001
#define MY_BITMAP 10001
IDD_DLG_MAIN DIALOGEX 6,5,200,121
CAPTION "Test Bitmap"
FONT 8,"MS Sans Serif"
STYLE 0x10CA0800
EXSTYLE 0x00000000
BEGIN
  CONTROL "",IDC_BTN_MYBITMAP,"Button",0x50018000,28,5,130,105,0x00000000
END
MY_BITMAP BITMAP DISCARDABLE "MyBitmap.bmp"

/*************************************************************************/

main.cpp :
-------------

#include <windows.h>
#include <stdio.h>
#include "test_dlg.h"

// prototype for the dialog box function
static BOOL CALLBACK DialogFunc(HWND, UINT, WPARAM, LPARAM);

// Globals variables
HINSTANCE g_hInst;
HWND g_hDlg;
char s[255];

// Main function
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
{
  g_hInst = hThisInstance;
  DialogBoxParam(hThisInstance, MAKEINTRESOURCE(IDD_DLG_MAIN), NULL, (DLGPROC) DialogFunc, 0);
  ExitProcess(0);
}

// Initialize the main dialog box
int InitializeApp(HWND hDlg,WPARAM wParam, LPARAM lParam)
{
  g_hDlg = hDlg;
  long res;

  HWND g_Bt;
  g_Bt = GetDlgItem(hDlg, IDC_BTN_MYBITMAP);
wsprintf(s, "g_Bt : %d", g_Bt); MessageBox(0,s,0,0);

  HBITMAP g_Img;
  g_Img = LoadBitmap(g_hInst, MAKEINTRESOURCE(MY_BITMAP));
wsprintf(s, "g_Img : %lu", g_Img); MessageBox(0,s,0,0);

  res = SendDlgItemMessage(hDlg, IDC_BTN_MYBITMAP, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)g_Img);
//  res = SendMessage(g_Bt, BM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)g_Img);
wsprintf(s, "res : %lu", res); MessageBox(0,s,0,0);

  return TRUE;
}

// Callback function for the main dialog box
BOOL CALLBACK DialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch (msg) {
  case WM_INITDIALOG:
    InitializeApp(hwndDlg,wParam,lParam);
    return TRUE;
  case WM_CLOSE:
    EndDialog(hwndDlg, FALSE);
    return TRUE;
  }
  return FALSE;
}

mardi 19 avril 2005 à 19:04:35 | Re : Pb d'image sur un bouton (WIN32 et API)

racpp

Administrateur CodeS-SourceS
Salut,
Tu as oublié d'ajouter le style BS_BITMAP à ton bouton. Dans ton fichier test_dlg.rc tu remplaces 0x50018000  par   0x50018080 . Voila, ça devrait marcher maintenant car le reste de ton code est ok.

mardi 19 avril 2005 à 21:11:52 | Re : Pb d'image sur un bouton (WIN32 et API)

skirby

Salut racpp et merci beaucoup car en effet ça fonctionne maintenant

J'ai cherché comme un dingue et en fait c'était tout simple. J'avais essayé la commande ci-dessous mais ça n'avait rien changé.
SendDlgItemMessage(hDlg, IDC_BTN_MYBITMAP, BM_SETSTYLE, (WPARAM)BS_BITMAP, (LPARAM)TRUE);

Ta solution est bien plus simple.

A+


Cette discussion est classée dans : wparam, main, bitmap, dlg, lparam


Répondre à ce message

Sujets en rapport avec ce message

list control [ par soshell ] Bonjour!J'ai un projet à finir dans 2 jours ( je sais c pas malin...) et j'ai commencé la prog windows hier, c pour ca ke j'ose mettre ce post dans au Dll Visual Aide [ par TheMaster ] Salut!j'ai un probleme, j'ai créer un logiciel permettant de visualiser des images.Les images sont stocke en ressource dans un dll.Mais je n'arrive pa HOOK - Help [DevCPP] [ par guitoulefoux ] Bonjour,J'essaye de faire un hook (mon 1er) mais a chaque fois qu'il se lance j'ai un pb d'affectation mémoire.en fait le HOOK récupère les actions cl [HOOK]Encore le meme probleme.. [ par bdkiller ] Salut,Bon, après pas mal d'heures passés là-dessus, j'ai la DLL qui se compile sans erreurs, l'appli principale qui se compile sans erreurs également! WIN32 [ par xarier ] LRESULT CALLBACK MainProc(HWND Dlg,UINT message,WPARAM wParam,LPARAM lParam)Please C dans certain prog je vois cux qui utilise le lparam et d'autre q Hook dans Dll [ par larion ] Bonjour,Mon problème est pourtant simple, mais impossible de m'en sortir sans votre aide.J'ai ajouté des éléments dans les menus système de cette mani problème CreateDialog et afficher icone [ par Suisse00 ] J'ai un petit problème avec CreateDialog, il y a aucun fenêtre qui s'ouvre (VC++ 6)#include #include "resource.h"HWND hDlg;LRESULT Gestion des evenements Win32 [ par zibo3 ] J'aimerai créer un événement appuyer sur une touche de type F3 mais cet événement doit se réaliser à chaque fois que j'appuie sur cette touche quelque J' ai un Problème avec les sokets. Peut on m' aider a faire un serveur [ par arsenicxenon ] ArsenicEt oui encore un Problème de débutant avec les sokets mais bon !!je n' arive pa a coder un serveur pour un Chat.Voiçi le code source pouriez vo Réinitialiser boite dialogue [ par goutbouyo ] Salut,Je n'arrive pas à réinitialiser ma boite de dialogue.Je fais:CASE IDC_BILAN: EndDialog(Dlg,0); LRESULT CALLBACK MainProc6(HWND Dlg,U


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

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