MFC Radio Button und Befehl per Socket schicken



  • VC++ .net 2003



  • guck mal nach visual c++ in 21 tagen... da stehts drin 🙂 kein bock das hier nochmal zu posten... das buch ist umsonnst...





  • Mein Problem ist gerade, dass ich ja erst irgednwas machen, wenn ich process drücke.

    void CmfcclientDlg::OnProcess()
    {
    // ----------------  Konsolenfenster öffnen --------------
        AllocConsole();
        freopen("con:", "w", stdout);
       if(proc !=0){
         proc->execute();} 
    
    }
    

    muss ich dann trotzden noch eine

    void CmfcclientDlg::irgendwas
    

    für die Buttons haben?

    ich habe die Buttons gegroupt und der Button, bei dem "Group" = true ist, hat die ID: IDHSV

    Kann ich heir was mit GetCheck() machen??

    Viele Grüße
    Elli



  • Das Buch gibt es nicht mehr bei muT.
    Wo außer unter : http://www.mut.de/media/buecher/VCPLUS6/data/start.htm
    kann ich das denn finden?



  • elli! schrieb:

    Das Buch gibt es nicht mehr bei muT.
    Wo außer unter : http://www.mut.de/media/buecher/VCPLUS6/data/start.htm
    kann ich das denn finden?

    Schade, dass du dir die Links von mir nicht angeguckt hast... 🙄



  • Sorry estartu. da ist es ja.. Ich seh vor lauter Bäumen den Wald nicht mehr...

    Thanx



  • Hallo,
    ich schon wieder.

    Ich bekomme es einfach nicht hin. Irgendwei habe ich einen groben Denkfahler drin.

    void CmfcclientDlg::OnProcess()
    {
    
    // ----------------  Konsolenfenster öffnen --------------
        AllocConsole();
        freopen("con:", "w", stdout);
        m_Algorithm.EnableWindow(TRUE);
       if(proc !=0){
         proc->execute();} 
    
    }
    
    void CmfcclientDlg::OnBHsv()
    {
      case 0: // Erstes Optionsfeld gewählt?
     printf ("HSV");
     break;
     case 1: // Zweites Optionsfeld gewählt?
     printf ("Canny");
     break;
     case 2: // Drittes Optionsfeld gewählt?
     printf ("Sift");
     break;
    }
    

    Irgendwie bekomme ich das nicht hin.
    Wer kann mir helfen?



  • elli! schrieb:

    void CmfcclientDlg::OnBHsv()
    {
      case 0: // Erstes Optionsfeld gewählt?
     printf ("HSV");
     break;
     case 1: // Zweites Optionsfeld gewählt?
     printf ("Canny");
     break;
     case 2: // Drittes Optionsfeld gewählt?
     printf ("Sift");
     break;
    }
    

    Irgendwie bekomme ich das nicht hin.
    Wer kann mir helfen?

    Da fehlt ja noch die Membervariable. 😕
    So compiliert das doch bestimmt nichtmal.

    Hinter dem zweiten Link von mir ist eine Anleitung, wie du eine int-Variable zu den Radiobuttons anlegst. Mach das mal.
    Falls schon das nicht klappt beschreibe genau, was du versucht hast, dann kann man besser sagen, wo es scheitert.
    Wenn du das hast, können wir mit der Funktion weitermachen. Da fehlt noch die Variable und ein UpdateData(TRUE). 🙂



  • Hey,

    also cih bin das so durchgegangen und ich habe eine Membervariable angelegt. Und auch noch eine mit int. Aber irgendwie shieht das alles nicht richtig aus.

    CButton m_Algorithm;
    afx_msg void OnBnClickedHsv();
    int m_Algo;

    Und wie baue ich das jetzt in mein Process ein?

    void CmfcclientDlg::OnProcess()
    {
    
    // ----------------  Konsolenfenster öffnen --------------
        AllocConsole();
        freopen("con:", "w", stdout);
      //  m_Algorithm.EnableWindow(TRUE);
    //-------------------Execute aufrufen ---------------
       if(proc !=0){
         proc->execute();}
    
    }
    

    LG E



  • Da ich noch nicht raushabe, was du da verschicken willst, wollte ich dir eigentlich nur bei OnBHsv helfen...

    void CmfcclientDlg::OnBHsv()
    {
    UpdateData(TRUE);
    switch(m_Algo)
    {
      case 0: // Erstes Optionsfeld gewählt?
     printf ("HSV");
     break;
     case 1: // Zweites Optionsfeld gewählt?
     printf ("Canny");
     break;
     case 2: // Drittes Optionsfeld gewählt?
     printf ("Sift");
     break;
    }
    }
    


  • Hey,

    ich habs raus. Ich habe ienfach in meine OnBProcess funktion folgendes geschrieben:

    UpdateData(TRUE);
      m_iAlgorithm;
    

    m_iAlgorithm zeigt mir den richtigen Wert an.
    Jetzt muss ich das Ganze nurnoch verschicken.

    mit

    if(proc !=0){
         proc->execute();}
    

    rufe ich meine Execute Funktion auf. Die sieht so aus:

    void Imageprocessor ::execute(){
      process(name);
    }
    

    Process:

    void process(const CString& name) {
    if (m_Test->isWriteable()){
    printf ("bereit zu lesen");

    if( (bild = fopen( fname,"rb" )) != NULL ){
    while(!feof(bild))
    {
    gelesen = fread(list,1,255,bild);
    lenout = m_Test->write((const unsigned char *)list,gelesen);
    }

    Eiegntlich müsste ich dem execute doch nur den m_iAlgorithm mitgeben, den dann genauso wie das name dem process übergeben, oder?
    und wie frickel ich das dann so, dass das ertse Bit meines zu übertragenden Bildes mein Inhalt aus m_iAlgorithm ist??

    vielen Dank
    E



  • Beim Übergeben an process kann ich dir noch helfen, du musst der Funktion nur einen Parameter verpassen.
    Aber die Bytefrickelei... keine Ahnung. 🙄


Anmelden zum Antworten