Dev C++ multi combobox PAS affichage dans bte de dialogue

slmh1 Messages postés 1 Date d'inscription jeudi 13 juin 2024 Statut Membre Dernière intervention 13 juin 2024 - Modifié le 17 juin 2024 à 12:18
mamiemando Messages postés 33325 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 octobre 2024 - 17 juin 2024 à 12:21

Bonjour,

J'utilise Dev C++ 6.3 sous Windows 10 et j'aimerais faire 1 multi ComboBox dans 1 boîte 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 comboboxes ne s'affichent pas dans la fenêtre de la boîte de dialogue.

J'ai même essayé avec (HMENU)1 et hinst(HINSTANCE) mais RIEN! J'ai dû pour éviter des erreurs de compilation aller dans Projet-option du projet-paramètres-et ajouter dans le linker les 2 fichiers  libcomctl32.a .  Je n'ai aucune erreur de compilation.


Qui pourrait m'aider pour résoudre ce problème; j'ai écumé le web mais rien trouvé? Ci-dessous mes lignes de code pour boîte de dialogue :

#include <commctrl.h>

BOOL APIENTRY Dialog1Proc(
    HWND hwnd,
    UINT Message,
    WPARAM wParam,
    LPARAM lParam
) {

INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_STANDARD_CLASSES;  // ou _STANDARD_ ou USEREX
InitCommonControlsEx(&icex);

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;
  }

Windows / Firefox 126.0

A voir également:

1 réponse

mamiemando Messages postés 33325 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 octobre 2024 7 799
17 juin 2024 à 12:21

Bonjour,

Cela ne va pas répondre directement à la question, mais peut-être te simplifier la vie : pourquoi considérer l'API windows, qui comme son nom l'indique, engendrera un programme qui ne sera pas portable pour d'autres systèmes d'exploitation, alors que tu pourrais utiliser des libraires comme GTK ou Qt ?

De plus, l'API windows est particulièrement peu intuitive, a un design archaïque, une documentation parfois discutable, et tu dois tout faire "à la main".

Bonne chance

0