Dev C++ ComboBox API Windows

Dev C++ ComboBox API Windows - C++ - Programmation

Marsh Posté le 11-06-2024 à 19:45:00    

Salut,
J'utilise Dev C++ 6.3 et aimerais faire 1 multi ComboBox dans 1 bte de dialogue en API Windows.  
Problème: Dev C++ n'accepte qu'1 seul COMBOBOX dans .RC (Borland et Visual Studio l'accepte).  
Donc j'ai essayé avec CreateWindow et les 2 combobox s'affichent dans la fenêtre principale mais pas dans la bte de dialogue RIEN ne s'affiche.
J'ai même essayé avec (HMENU)1 et hinst(HINSTANCE) mais RIEN!.
Qui pourrait m'aider pour résoudre ce problème?
Ci-dessous mes lignes de code qui sont identiques pour fenêtre principale et pour bte de dialogue:
 
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)  
{  
 HWND combobox,combobox1;
 
 switch (Message)  
 {  
 
  case WM_CREATE :    
  {
     combobox=CreateWindowA(TEXT("COMBOBOX" ),TEXT("" ),WS_VISIBLE|WS_CHILD|WS_VSCROLL|CBS_DROPDOWN,
       70,70,90,60,hwnd,(HMENU)NULL,NULL,NULL);  //x,y,longueur,hauteur(nbre item)
     combobox1=CreateWindowA(TEXT("COMBOBOX" ),TEXT("" ),WS_VISIBLE|WS_CHILD|WS_VSCROLL|CBS_DROPDOWN,
       200,70,90,60,hwnd,(HMENU)NULL,NULL,NULL);
     SendMessage(combobox,(UINT)CB_ADDSTRING,(WPARAM)0,(LPARAM)TEXT("item1" ));
     SendMessage(combobox1,(UINT)CB_ADDSTRING,(WPARAM)0,(LPARAM)TEXT("item3" ));  
     SendMessage(combobox,CB_SETCURSEL,(WPARAM)0,(LPARAM)0);
     SendMessage(combobox1,CB_SETCURSEL,(WPARAM)0,(LPARAM)0);    
     break;
  }  
 
BOOL APIENTRY Dialog1Proc(HWND hwnd,UINT Message,WPARAM wParam,LPARAM lParam)  
{  
  idem

Reply

Marsh Posté le 11-06-2024 à 19:45:00   

Reply

Marsh Posté le 12-06-2024 à 13:04:23    

Tu dois appeler InitCommonControlsEx(); avant de créer ta combobox
 
https://learn.microsoft.com/en-us/w [...] controlsex


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-06-2024 à 15:37:41    

Merci mais malgré cela il n'y a pas d'affichage de la combobox dans la bte de dialogue.  J'ai du pour éviter des erreurs de compilation aller dans Projet-propriété-paramètres-et ajouter dans le linker les 2 fichiers  libcomctl32.a .  Je n'ai aucune erreur de compilation.
Ci-dessous le code de ma bte de dialogue
 
HWND combobox;
 
INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_STANDARD_CLASSES;  //ou _STANDARD_ ou USEREX
InitCommonControlsEx(&icex);
   
  switch(Message)
  {
   case WM_CREATE :   // N'AFFICHE RIEN SUR ECRAN***
   {
   combobox=CreateWindowA(TEXT("COMBOBOX" ),TEXT("" ),WS_VISIBLE|WS_CHILD|WS_VSCROLL|CBS_DROPDOWN,
       150,114,90,60,hwnd,(HMENU)1000,NULL,NULL);  // x,y,longueur,hauteur(nbre item)
SendMessage(combobox,(UINT)CB_ADDSTRING,(WPARAM)0,(LPARAM)TEXT("item1" ));
   SendMessage(combobox,CB_SETCURSEL,(WPARAM)0,(LPARAM)0);
  break;
 }
 

Reply

Marsh Posté le 13-06-2024 à 15:41:20    

J'ai oublié que j'ai mis au début du programme
#include <commctrl.h>
 
et j'écume pour l'instant le web mais sans espoir de réponse.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed