Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. need help in MFC

need help in MFC

Scheduled Pinned Locked Moved C / C++ / MFC
helpc++comtutorial
18 Posts 6 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    jawadali477
    wrote on last edited by
    #1

    hi, i have developed console program in C language running fine. the program is used to communicate to a motor through serial port. now i wanted to build GUI in MFC vs2008 (some of which i have completed). i'm facing problem in opening serial port as i have done in console program. can any one tell how to implement console program for opening serial port. code below shows how i open serial port in console program.

    int COMportNum, BaudRate;
    char COMportName[256], tmpChar;
    portstream_fd COMstream;
    char COMportPrefix[10] = "COM";

    COMportName[0] = ' ';
    while (COMportName[0] == ' ') {
    printf("\nEnter the %s port number the motor is attached to: ", COMportPrefix);
    scanf("%d", &COMportNum);
    printf("You selected %s%d. Is this OK? (enter 'y' or 'n'): ", COMportPrefix, COMportNum);
    tmpChar = 'f';
    while ( (tmpChar != 'y') && (tmpChar != 'n') )
    tmpChar = ((char) tolower(getchar()));
    if ( tmpChar == 'y' )
    sprintf(COMportName, "%s%d", COMportPrefix, COMportNum);
    }
    tmpChar = 'f';
    while (tmpChar != 'y') {
    printf("\nEnter the baud rate the motor communicate at (default: 9600): ");
    scanf("%d", &BaudRate);
    printf("You selected %d. Is this OK? (enter 'y' or 'n'): ", BaudRate);
    tmpChar = 'f';
    while ( (tmpChar != 'y') && (tmpChar != 'n') )
    tmpChar = ((char) tolower(getchar()));
    }

     /\* initialize the serial port \*/
     set\_baud\_rate(BaudRate);
     COMstream = open\_host\_port(COMportName);
    
     if ( COMstream == PORT\_NOT\_OPENED )
         { printf("\\nSerial Port setup error.\\n");
           goto abnormal\_exit;  }
     printf("\\nSerial port %s initialized\\n", COMportName);
    
    L CPalliniC 2 Replies Last reply
    0
    • J jawadali477

      hi, i have developed console program in C language running fine. the program is used to communicate to a motor through serial port. now i wanted to build GUI in MFC vs2008 (some of which i have completed). i'm facing problem in opening serial port as i have done in console program. can any one tell how to implement console program for opening serial port. code below shows how i open serial port in console program.

      int COMportNum, BaudRate;
      char COMportName[256], tmpChar;
      portstream_fd COMstream;
      char COMportPrefix[10] = "COM";

      COMportName[0] = ' ';
      while (COMportName[0] == ' ') {
      printf("\nEnter the %s port number the motor is attached to: ", COMportPrefix);
      scanf("%d", &COMportNum);
      printf("You selected %s%d. Is this OK? (enter 'y' or 'n'): ", COMportPrefix, COMportNum);
      tmpChar = 'f';
      while ( (tmpChar != 'y') && (tmpChar != 'n') )
      tmpChar = ((char) tolower(getchar()));
      if ( tmpChar == 'y' )
      sprintf(COMportName, "%s%d", COMportPrefix, COMportNum);
      }
      tmpChar = 'f';
      while (tmpChar != 'y') {
      printf("\nEnter the baud rate the motor communicate at (default: 9600): ");
      scanf("%d", &BaudRate);
      printf("You selected %d. Is this OK? (enter 'y' or 'n'): ", BaudRate);
      tmpChar = 'f';
      while ( (tmpChar != 'y') && (tmpChar != 'n') )
      tmpChar = ((char) tolower(getchar()));
      }

       /\* initialize the serial port \*/
       set\_baud\_rate(BaudRate);
       COMstream = open\_host\_port(COMportName);
      
       if ( COMstream == PORT\_NOT\_OPENED )
           { printf("\\nSerial Port setup error.\\n");
             goto abnormal\_exit;  }
       printf("\\nSerial port %s initialized\\n", COMportName);
      
      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #2

      You would do exactly the same in the MFC program. You could make your comport handler into a class or add it to one of the existing classes. You then activate it by a menu selector or toolbar button.

      Programming is work, it isn't finger painting. Luc Pattyn

      J J A 3 Replies Last reply
      0
      • L Lost User

        You would do exactly the same in the MFC program. You could make your comport handler into a class or add it to one of the existing classes. You then activate it by a menu selector or toolbar button.

        Programming is work, it isn't finger painting. Luc Pattyn

        J Offline
        J Offline
        jawadali477
        wrote on last edited by
        #3

        can you please send me some reference example sites?

        L 1 Reply Last reply
        0
        • J jawadali477

          can you please send me some reference example sites?

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #4

          References for what? If you do not understand MFC then a search of The CodeProject Articles[^], MSDN[^] or even Google, will help. Alternatively there are many books on the market.

          Programming is work, it isn't finger painting. Luc Pattyn

          1 Reply Last reply
          0
          • J jawadali477

            hi, i have developed console program in C language running fine. the program is used to communicate to a motor through serial port. now i wanted to build GUI in MFC vs2008 (some of which i have completed). i'm facing problem in opening serial port as i have done in console program. can any one tell how to implement console program for opening serial port. code below shows how i open serial port in console program.

            int COMportNum, BaudRate;
            char COMportName[256], tmpChar;
            portstream_fd COMstream;
            char COMportPrefix[10] = "COM";

            COMportName[0] = ' ';
            while (COMportName[0] == ' ') {
            printf("\nEnter the %s port number the motor is attached to: ", COMportPrefix);
            scanf("%d", &COMportNum);
            printf("You selected %s%d. Is this OK? (enter 'y' or 'n'): ", COMportPrefix, COMportNum);
            tmpChar = 'f';
            while ( (tmpChar != 'y') && (tmpChar != 'n') )
            tmpChar = ((char) tolower(getchar()));
            if ( tmpChar == 'y' )
            sprintf(COMportName, "%s%d", COMportPrefix, COMportNum);
            }
            tmpChar = 'f';
            while (tmpChar != 'y') {
            printf("\nEnter the baud rate the motor communicate at (default: 9600): ");
            scanf("%d", &BaudRate);
            printf("You selected %d. Is this OK? (enter 'y' or 'n'): ", BaudRate);
            tmpChar = 'f';
            while ( (tmpChar != 'y') && (tmpChar != 'n') )
            tmpChar = ((char) tolower(getchar()));
            }

             /\* initialize the serial port \*/
             set\_baud\_rate(BaudRate);
             COMstream = open\_host\_port(COMportName);
            
             if ( COMstream == PORT\_NOT\_OPENED )
                 { printf("\\nSerial Port setup error.\\n");
                   goto abnormal\_exit;  }
             printf("\\nSerial port %s initialized\\n", COMportName);
            
            CPalliniC Offline
            CPalliniC Offline
            CPallini
            wrote on last edited by
            #5

            In a rather rough approach you may let the user write the full name of the serial port into an edit box (say myEditBox) and use that string as argument of open_host_port, that is as simple as (assuming a ANSI build):

            CString portname;
            myEditBox.GetWindowText(portname);
            COMstream = open_host_port(portname);

            Veni, vidi, vici.

            In testa che avete, signor di Ceprano?

            J 1 Reply Last reply
            0
            • CPalliniC CPallini

              In a rather rough approach you may let the user write the full name of the serial port into an edit box (say myEditBox) and use that string as argument of open_host_port, that is as simple as (assuming a ANSI build):

              CString portname;
              myEditBox.GetWindowText(portname);
              COMstream = open_host_port(portname);

              Veni, vidi, vici.

              J Offline
              J Offline
              jawadali477
              wrote on last edited by
              #6

              but open_host_port () is defined as

              portstream_fd open_host_port(char *portname)

              CPalliniC 1 Reply Last reply
              0
              • J jawadali477

                but open_host_port () is defined as

                portstream_fd open_host_port(char *portname)

                CPalliniC Offline
                CPalliniC Offline
                CPallini
                wrote on last edited by
                #7

                Well, that is a open_host_port fault. Why - the fresh Hell - the function needs a not-const string? However

                COMstream = open_host_port((LPSTR)(LPCSTR) testCStr);

                should do the trick. BTW I ask you once again (I'm curious): what library are you using?

                Veni, vidi, vici.

                In testa che avete, signor di Ceprano?

                J 1 Reply Last reply
                0
                • L Lost User

                  You would do exactly the same in the MFC program. You could make your comport handler into a class or add it to one of the existing classes. You then activate it by a menu selector or toolbar button.

                  Programming is work, it isn't finger painting. Luc Pattyn

                  J Offline
                  J Offline
                  jeron1
                  wrote on last edited by
                  #8

                  Compensated for the unwarranted univote.

                  L 1 Reply Last reply
                  0
                  • L Lost User

                    You would do exactly the same in the MFC program. You could make your comport handler into a class or add it to one of the existing classes. You then activate it by a menu selector or toolbar button.

                    Programming is work, it isn't finger painting. Luc Pattyn

                    A Offline
                    A Offline
                    Aescleal
                    wrote on last edited by
                    #9

                    I wish bleedin' univoters would tell people WHY they do it. Mucking Fuppets. How the hell are we supposed to learn if they won't tell us what we're doing wrong...

                    P L CPalliniC 3 Replies Last reply
                    0
                    • A Aescleal

                      I wish bleedin' univoters would tell people WHY they do it. Mucking Fuppets. How the hell are we supposed to learn if they won't tell us what we're doing wrong...

                      P Offline
                      P Offline
                      Pete OHanlon
                      wrote on last edited by
                      #10

                      Univoters normally include the OP when someone doesn't actually write all their code for them. For some reason, CP forums seem to be seen as the source of free software where you post up a vague problem and miraculously someone will write all your code for you. For free.

                      *pre-emptive celebratory nipple tassle jiggle* - Sean Ewington

                      "Mind bleach! Send me mind bleach!" - Nagy Vilmos

                      CodeStash - Online Snippet Management | My blog | MoXAML PowerToys | Mole 2010 - debugging made easier

                      1 Reply Last reply
                      0
                      • J jeron1

                        Compensated for the unwarranted univote.

                        L Offline
                        L Offline
                        Lost User
                        wrote on last edited by
                        #11

                        :thumbsup:

                        Programming is work, it isn't finger painting. Luc Pattyn

                        1 Reply Last reply
                        0
                        • A Aescleal

                          I wish bleedin' univoters would tell people WHY they do it. Mucking Fuppets. How the hell are we supposed to learn if they won't tell us what we're doing wrong...

                          L Offline
                          L Offline
                          Lost User
                          wrote on last edited by
                          #12

                          Yes, but then they wouldn't be univoters. Quite frankly, I think I'm big enough and ugly enough to take it on the chin. :(( :(( :((

                          Programming is work, it isn't finger painting. Luc Pattyn

                          A 1 Reply Last reply
                          0
                          • L Lost User

                            Yes, but then they wouldn't be univoters. Quite frankly, I think I'm big enough and ugly enough to take it on the chin. :(( :(( :((

                            Programming is work, it isn't finger painting. Luc Pattyn

                            A Offline
                            A Offline
                            Aescleal
                            wrote on last edited by
                            #13

                            I'm sure you are, still bloody irritating though...

                            P 1 Reply Last reply
                            0
                            • A Aescleal

                              I'm sure you are, still bloody irritating though...

                              P Offline
                              P Offline
                              Pete OHanlon
                              wrote on last edited by
                              #14

                              You think Richard is irritating? ;P

                              *pre-emptive celebratory nipple tassle jiggle* - Sean Ewington

                              "Mind bleach! Send me mind bleach!" - Nagy Vilmos

                              CodeStash - Online Snippet Management | My blog | MoXAML PowerToys | Mole 2010 - debugging made easier

                              A 1 Reply Last reply
                              0
                              • CPalliniC CPallini

                                Well, that is a open_host_port fault. Why - the fresh Hell - the function needs a not-const string? However

                                COMstream = open_host_port((LPSTR)(LPCSTR) testCStr);

                                should do the trick. BTW I ask you once again (I'm curious): what library are you using?

                                Veni, vidi, vici.

                                J Offline
                                J Offline
                                jawadali477
                                wrote on last edited by
                                #15

                                thank you CPallini. that was really helpful.

                                CPalliniC 1 Reply Last reply
                                0
                                • J jawadali477

                                  thank you CPallini. that was really helpful.

                                  CPalliniC Offline
                                  CPalliniC Offline
                                  CPallini
                                  wrote on last edited by
                                  #16

                                  You are welcome.

                                  Veni, vidi, vici.

                                  In testa che avete, signor di Ceprano?

                                  1 Reply Last reply
                                  0
                                  • A Aescleal

                                    I wish bleedin' univoters would tell people WHY they do it. Mucking Fuppets. How the hell are we supposed to learn if they won't tell us what we're doing wrong...

                                    CPalliniC Offline
                                    CPalliniC Offline
                                    CPallini
                                    wrote on last edited by
                                    #17

                                    Ok, take my 1. I can't tell you why I can't tell you why :-D

                                    Veni, vidi, vici.

                                    In testa che avete, signor di Ceprano?

                                    1 Reply Last reply
                                    0
                                    • P Pete OHanlon

                                      You think Richard is irritating? ;P

                                      *pre-emptive celebratory nipple tassle jiggle* - Sean Ewington

                                      "Mind bleach! Send me mind bleach!" - Nagy Vilmos

                                      CodeStash - Online Snippet Management | My blog | MoXAML PowerToys | Mole 2010 - debugging made easier

                                      A Offline
                                      A Offline
                                      Aescleal
                                      wrote on last edited by
                                      #18

                                      Yep, but don't tell him! :-)

                                      1 Reply Last reply
                                      0
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes


                                      • Login

                                      • Don't have an account? Register

                                      • Login or register to search.
                                      • First post
                                        Last post
                                      0
                                      • Categories
                                      • Recent
                                      • Tags
                                      • Popular
                                      • World
                                      • Users
                                      • Groups