Picture Control...



  • Hallo

    eine Frage: wie gehe ich mit der Picture Control um, und wie kann ich da ein Bild reinladen??? Ist das kompliziert?

    Danke



  • Eine sehr gute Frage! 😉
    Also zu Laufzeit hab ich auch noch nicht geschafft, da irgendetwas reinzumalen. Würde mich auch mal interessieren, wie das geht.



  • Hmm.
    wozu ist die Picture COntrol denn sonst da???
    Und im Explorer geht es ja auch, dass wenn du ein Dialogfeld öffnest und ein Bild oder so aussuchst, dass du dann zur Laufzeit das Bild angezeigt bekommst!

    Wer kennt sich denn mit sowas aus???



  • OMg... also
    1. Lern C++
    2. Guck dir mal das an: http://www.se.fh-heilbronn.de/usefulstuff/VCPLUS6/inhalt.htm
    3. Du solltest die MSDN Library kennen.. dann würdest du folgendes ohne weiters selbst finden:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cstatic.asp
    4. Deine Lösung heißt GetDlgItem() oder Variable...



  • also du meinst GetDlgItem() oder Variable.

    Versteh ich nicht so ganz und ich finde auch nicht wirklich was drüber!



  • Bisher habe ich getDlgItem() in folgendem Zusammenhang genutzt:

    GetDlgItem(IDButton)->ShowWindow(TRUE);
    

    Um den Button einzublenden.

    Wenn ich das mit nem Bild in meinem IDC_PIC1 machen will

    GetDlgItem(IDC_PIC1) ->  ????????????????????
    


  • Also ich habe jetzt mal probiert hier was einzufügen:::

    void CmfcclientDlg::OnOpen()
    
    {  
    	m_iMode = 1;
       CFileDialog dlg(TRUE, _T("*.bmp"), "",                   
       OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_HIDEREADONLY,
       "JPG files (*.jpg)|*.jpg|BMP files (*.bmp) |*.bmp|AVI files (*.avi) |*.avi| All Files (*.*)|*.*||",NULL);
    
      char title[]= {"Browse"};
      dlg.m_ofn.lpstrTitle= title;
      char zeichen;
    
      if (dlg.DoModal() == IDOK) {
        CString path= dlg.GetPathName();
          if (proc != 0)
          delete proc;
    	  int laenge = path.GetLength();
    
    	  for (int i = 0; i < laenge;i++) {
    		zeichen = path.GetAt(i);
    	    if (zeichen == '\\')
    		{
    			path.Insert(i,"\\");
    			i+=1;
    		}
    	  }
    	  m_ctlBild.SetBitmap((HBITMAP) LoadImage (NULL,path, IMAGE_BITMAP, 100,100, LR_LOADFROMFILE | LR_CREATEDIBSECTION));
    
      }
    }
    

    Und es funktioniert nicht! Wieso?
    Gibt es denn die Chance auf diese Art und Weise jpgs darzustellen ????



  • Nöö... mit LoadImage kannst keine hpg dateien standart mäßig laden... musst de dir was selbst schreiben 🙂

    und mit GetDlgItem() hättest de das so machen müss:

    CStatic* pwndPicCtrl = (CStatic*)GetDlgItem(IDC_PIC1);
    pwndPicCtrl->SetBitmap(...);
    

    Guck dich mal in der MSDN Library um... vor allem guck mal die Funktionen da nach die du verwendest... dann siehst de was de flasch hast 😉


Anmelden zum Antworten