begin process at 2012 05 29 17:28:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

GUI

 > 

Problème pour iconiser une application


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

Problème pour iconiser une application

mardi 1 juillet 2008 à 17:33:45 | Problème pour iconiser une application

piroman14

Noobinho one again!!

Bonjour tout le monde!
Je serais très reconnaissant si vous pouviez m'aiguiller pour ce programme.
Je souhaite iconiser mon application mais je dois dire que je galère.
Je me suis aidé de la page suivante : [ Lien ] sans succès.

Mes questions sont les suivantes:
Est-il nécessaire de générer un ico et si oui ou faut-il le placer?
Pourquoi-faut il en générer 2? Est-ce une pour l'application et une pour la fenêtre en haut à gauche?

Merci de me donner un chti coup de main.

Voici le programme qui me pose problème:

int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{

    HWND hwnd;
    MSG msg;
    WNDCLASS wc;
    HMENU hMenu, hSousMenu;
    hinst = hinstance;
    HICON hIcon1,hIcon2;
 int Ret;

// Voici la partie du programme que j'ai tenté de copier et qui me pose problème.

 hwnd = (HWND)CreateDialog(hinstance, MAKEINTRESOURCE(IDD_MAINDIALOG), NULL, MainWndProc);

 hIcon1 = LoadIcon(hinstance,MAKEINTRESOURCE(IDI_MAINICON));
 hIcon2 = LoadIcon(hinstance,MAKEINTRESOURCE(IDI_MAINICON));

 SendMessage(hwnd,WM_SETICON,(WPARAM)ICON_SMALL,(LPARAM)hIcon1);
 SendMessage(hwnd,WM_SETICON,(WPARAM)ICON_BIG,(LPARAM)hIcon2);

 ShowWindow(hwnd,MainWndProc);
 
    wc.style = 0 ;
    wc.lpfnWndProc = MainWndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hinstance;
    wc.hIcon = NULL;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = NULL;
    wc.lpszMenuName =  NULL;
    wc.lpszClassName = "MaWinClass";;

    if(!RegisterClass(&wc)) return FALSE;

    hSousMenu = CreateMenu();
    AppendMenu(hSousMenu, MF_STRING, IDM_OPEN, "Générer les images acoustiques à partir d'un fichier VTK");
    AppendMenu(hSousMenu, MF_SEPARATOR, 0, NULL);
    AppendMenu(hSousMenu, MF_STRING, IDM_QUIT, "Quitter");
    hMenu  = CreateMenu();
    AppendMenu(hMenu,MF_POPUP,(UINT)hSousMenu,"Fichier");

    hwnd = CreateWindow("MaWinClass", "SCAT Image Processing LaMIPS/NXP 2008", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT, 640, 300, NULL, hMenu, hinstance, NULL);
     
 if (!hwnd)  return FALSE;

    ShowWindow(hwnd, nCmdShow);

    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return msg.wParam;

}
///////////////////////////////////////////////////////////////////////////////

 

///////////////////////////////////////////////////////////////////////////////

LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    static HWND hEdit;
    static BOOL EditNotChg = TRUE;
    FILE *fp0, *fp1, *fp2;
    FILE *tmpf= 0;      //Opened temp. file
 
 char name[255];
 char ext[7], mode[7];
 unsigned int i, j, k;
 unsigned int imax, jmax, kmax;
 unsigned char pix; 
 char *vtk, *vtkPtr;

 switch (uMsg)
    {
        case WM_CREATE:

            {
             HFONT hFont;

             hEdit = CreateWindow("edit","Pour générer les images acoustiques de votre échantillon : Fichier -> Générer les images acoustiques à partir d'un fichier VTK", WS_CHILD | WS_VISIBLE |ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL,0, 0, 0, 0, hwnd, NULL, hinst, NULL);
             hFont = (HFONT)GetStockObject(ANSI_FIXED_FONT);
             SendMessage(hEdit,WM_SETFONT,(UINT)hFont,TRUE);
             SendMessage(hEdit, EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(5, 5));
             return 0;
            }

        case WM_CLOSE:
    
            return 0;

        case WM_COMMAND:

            if(LOWORD(wParam) == IDM_OPEN)
              {
    HFONT hFont;
                OPENFILENAME ofn;
                CHAR szFile[MAX_PATH]={0};

                ZeroMemory(&ofn, sizeof(OPENFILENAME));
                ofn.lStructSize = sizeof(OPENFILENAME);
                ofn.hwndOwner = hwnd;
                ofn.lpstrFile = szFile;
                ofn.nMaxFile = MAX_PATH;
                ofn.lpstrFilter ="Fichier  VTK\0*.vtk\0";
                ofn.nFilterIndex = 1;
                ofn.Flags =OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
  

                if (GetOpenFileName(&ofn)==TRUE)

    {  
     HFONT hFont;

      hEdit = CreateWindow("edit","Traitement en cours...", WS_CHILD | WS_VISIBLE |ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL,0, 0, 0, 0, hwnd, NULL, hinst, NULL);
      hFont = (HFONT)GetStockObject(ANSI_FIXED_FONT);
      SendMessage(hEdit,WM_SETFONT,(UINT)hFont,TRUE);
      SendMessage(hEdit, EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(5, 5));
                
     //SetDlgItemText()
     
     i = 0;   
     while (*(szFile + i) != 0)
     {
        *(name + i) = *(szFile + i);
        ++i;
     }
     *(name + i) = 0; // terminateur par défaut
     while (i > 0)
     {
        --i;
        if (*(name + i) == '\\') break; // pas d'extension
        if (*(name + i) == '/') break; // pas d'extension
        if (*(name + i) == '.')
        {
        *(name + i) = 0; // extension supprimée
        break;
        }
     }

      //Ouverture d'un fichier temp.  
      tmpf= scatOpenTempFile();

      //Ouverture des fichiers vtk
      strcpy(ext,".vtk"); strcpy(mode,"rb");
      fp0= scatOpenFile(name,ext,mode);
      strcpy(ext,"X.vtk"); strcpy(mode,"wb+");
      fp1= scatOpenFile(name,ext,mode);
      strcpy(ext,".xls"); strcpy(mode,"wa");
      fp2= scatOpenFile(name,ext,mode);

      //Affichage de l'entete du fichier VTK
      scatHeaderVTK(fp0, fp1, &imax, &jmax, &kmax);

      //Allocation memoire dynamique
      vtkPtr= scatMemAllocVTK(imax, jmax, kmax);
      vtk= vtkPtr;


      //Lecture des echos et reorganisation des data
      scatReadFileVTK(imax,jmax,kmax,fp0,vtk);

      //Traitement des data: lissage + segmentation
      vtk= vtkPtr;
      scatMainProcessing(imax,jmax,kmax,tmpf,fp2,vtk,name);


      fclose(fp0);
      fclose(fp2);


       fclose(fp1);
       fclose(tmpf);
       exit(0);

      //
      //Remise du fichier vtk dans l'ordre initial
      //Lecture des data

      vtk= vtkPtr;
      rewind(tmpf);

      for(i=0;i<imax;i++){
     for(j=0;j<jmax;j++){
       for(k= 0 ; k<kmax; k++) {
     fread(&pix,sizeof(unsigned char),1,tmpf);
     *(vtk+(k*(jmax*imax)+j*imax+i))= pix;  
       }
     }
      }

      //Reecriture
       for(k=0;k<kmax;k++)
      for(j=0;j<jmax;j++)
        for(i= 0; i<imax; i++, vtk++)
      fwrite(vtk,sizeof(unsigned char),1,fp1);

      fclose(tmpf);
      fclose(fp1);

      free(vtkPtr);     
    }
    
              }
            if(LOWORD(wParam) == IDM_QUIT) PostMessage(hwnd, WM_CLOSE,0,0);
            if(HIWORD(wParam) == EN_CHANGE) EditNotChg = FALSE;
           
   return 0;

        case WM_SIZE:
             MoveWindow(hEdit, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE);
             return 0;

        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;

        default:
            return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }
}

Et les erreurs générées:

h:\adrien\gui2\parcourir.cpp(80) : error C2065: 'IDD_MAINDIALOG' : undeclared identifier
h:\adrien\gui2\parcourir.cpp(80) : error C2664: 'CreateDialogParamA' : cannot convert parameter 4 from 'long (struct HWND__ *,unsigned int,unsigned int,long)' to 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'
        None of the functions with this name in scope match the target type
h:\adrien\gui2\parcourir.cpp(82) : error C2065: 'IDI_MAINICON' : undeclared identifier
h:\adrien\gui2\parcourir.cpp(88) : error C2664: 'ShowWindow' : cannot convert parameter 2 from 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
h:\adrien\gui2\parcourir.cpp(1031) : warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
Error executing cl.exe.

gui2.exe - 4 error(s), 1 warning(s)


Merci d'avance



Cette discussion est classée dans : int, hwnd, wc, ofn, vtk


Répondre à ce message

Sujets en rapport avec ce message

Problème de récupération de chemin valide [ par piroman14 ] Noobinho is back!!!Je souhaite faire une interface graphique pour un programme que j'ai fait en console et qui marchait correctement.La seule saisie à Conserver messages dans hEdit à chaque envoi de nveau message [ par piroman14 ] Bonjour tout le monde:Dsl mais je suis toujours aussi mauvais en winAPI depuis la dernière fois.Mon problème est que je n'arrive pas à conserver les m ressources et API !!!! [ par Xs ] salut !voila, pour me simplifier la tache, j'utlise les ressources pour creer une boite de dialog (sous VC++ 6).mais j'obtiens, lors de la compilation [C++]Problème de pointeur ou de liste chainee [ par Arkko ] Bonjour... J'essaye de convertir une liste chainée du site en une liste chainée demandant comme parametre un new par exemple ajouter(new Test);Cela f DLL et SendMessage() [ par LordBob ] Bonsoir a tous,voila je continue le développement d'un petit projet. Je voudrais rajouter la possibilité que lorsque on appuie sur une touche a n'impo HWND et Preripherique [ par LordBob ] Bonjour a tous, voila en fait ma question est plutot simple, est ce qu'un HWND est attribué de façon aléatoire ou non? Je m'explique par exemple dans ouvrir une 2eme fenetre avec editbox et tout et tout, c'est possible? [ par Arnaud16022 ] Hello tout le monde!je voudrais mettre un bouton dans une fenetre (ca c'est facile), mais seulement quand on clique dessus un autre fenetre s'ouvre, a Colorier un static : HEeeeeeeelp !!! [ par sprintjeffC ] salut @ tousje me mets a la programmation windows en C/C++ (pas VC++ merci ... quitte à faire du microsoft je préfère VB ;-). Je démarrai pas mal et t transformer un int en HWND [ par hansmeier ] Bonsoir, je suis un debutant en C/C++ et j'aimerais savoir comment transformer un int en HWND Merci pour vos futures réponses !


Nos sponsors


Sondage...

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 : 2,434 sec (3)

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