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. How can I display current time in dialog static control

How can I display current time in dialog static control

Scheduled Pinned Locked Moved C / C++ / MFC
question
18 Posts 7 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.
  • A amistry_petlad

    Hi all I try to display current time in static control but its not given me the time its show me something unicode values although i have changed the setting but still i did get result Thanks

    M Offline
    M Offline
    messages
    wrote on last edited by
    #3

    Can you show your code,please?

    A 1 Reply Last reply
    0
    • D David Crow

      So why are you not showing us the code you are using, or do we just guess as to what you are doing wrong?

      "Love people and use things, not love things and use people." - Unknown

      "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

      A Offline
      A Offline
      amistry_petlad
      wrote on last edited by
      #4

      void CDigitalclockDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting . ........ ............ ............ } else { CDialog::OnPaint(); GetLocalTime(&time); char str[256]; sprintf_s(str,"02d%:02d%:02d%",time.wHour,time.wMinute,time.wSecond); int len; int slength = (int)str.length() + 1; len = MultiByteToWideChar(CP_ACP, 0, str.c_str(), slength, 0, 0); wchar_t* buf = new wchar_t[len]; MultiByteToWideChar(CP_ACP, 0, str.c_str(), slength, buf, len); SetDlgItemText(IDC_STATIC,(LPCTSTR)str); } }

      D M 2 Replies Last reply
      0
      • A amistry_petlad

        void CDigitalclockDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting . ........ ............ ............ } else { CDialog::OnPaint(); GetLocalTime(&time); char str[256]; sprintf_s(str,"02d%:02d%:02d%",time.wHour,time.wMinute,time.wSecond); int len; int slength = (int)str.length() + 1; len = MultiByteToWideChar(CP_ACP, 0, str.c_str(), slength, 0, 0); wchar_t* buf = new wchar_t[len]; MultiByteToWideChar(CP_ACP, 0, str.c_str(), slength, buf, len); SetDlgItemText(IDC_STATIC,(LPCTSTR)str); } }

        D Offline
        D Offline
        David Crow
        wrote on last edited by
        #5

        amistry_petlad wrote:

        sprintf_s(str,"02d%:02d%:02d%",time.wHour,time.wMinute,time.wSecond);

        This should not even compile (bad format string). :confused:

        amistry_petlad wrote:

        int slength = (int)str.length() + 1;

        This should not even compile (integral types have no methods). :confused:

        "Love people and use things, not love things and use people." - Unknown

        "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

        A 1 Reply Last reply
        0
        • D David Crow

          amistry_petlad wrote:

          sprintf_s(str,"02d%:02d%:02d%",time.wHour,time.wMinute,time.wSecond);

          This should not even compile (bad format string). :confused:

          amistry_petlad wrote:

          int slength = (int)str.length() + 1;

          This should not even compile (integral types have no methods). :confused:

          "Love people and use things, not love things and use people." - Unknown

          "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

          A Offline
          A Offline
          amistry_petlad
          wrote on last edited by
          #6

          When I had simply used sprintf complier generated warning for sprintf AND give suggestion fo sprintf_s i am using MSVS2008 ON VISTA I have change the code following way it compile succesful but rund time break the application GetLocalTime(&time); char str[256]; sprintf_s(str,"02d%:02d%:02d%",time.wHour,time.wMinute,time.wSecond); std::string str1(str); int len; int slength = (int)str1.length() + 1; len = MultiByteToWideChar(CP_ACP, 0, str1.c_str(), slength, 0, 0); wchar_t* buf = new wchar_t[len]; MultiByteToWideChar(CP_ACP, 0, str1.c_str(), slength, buf, len); SetDlgItemText(IDC_STATIC1,buf);

          D J 2 Replies Last reply
          0
          • A amistry_petlad

            When I had simply used sprintf complier generated warning for sprintf AND give suggestion fo sprintf_s i am using MSVS2008 ON VISTA I have change the code following way it compile succesful but rund time break the application GetLocalTime(&time); char str[256]; sprintf_s(str,"02d%:02d%:02d%",time.wHour,time.wMinute,time.wSecond); std::string str1(str); int len; int slength = (int)str1.length() + 1; len = MultiByteToWideChar(CP_ACP, 0, str1.c_str(), slength, 0, 0); wchar_t* buf = new wchar_t[len]; MultiByteToWideChar(CP_ACP, 0, str1.c_str(), slength, buf, len); SetDlgItemText(IDC_STATIC1,buf);

            D Offline
            D Offline
            David Crow
            wrote on last edited by
            #7

            amistry_petlad wrote:

            ...but rund time break the application

            And rightfully so since you did not change sprintf_s().

            "Love people and use things, not love things and use people." - Unknown

            "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

            A 1 Reply Last reply
            0
            • D David Crow

              amistry_petlad wrote:

              ...but rund time break the application

              And rightfully so since you did not change sprintf_s().

              "Love people and use things, not love things and use people." - Unknown

              "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

              A Offline
              A Offline
              amistry_petlad
              wrote on last edited by
              #8

              now its working when i used sprintf but in the dialog it should be print hh:mm:yy I have debug the application i got the perfect string in all varibals but when display in the static control its only shows the hour nothing more. So here in US 1:40:40 so must be displayed but it show me 1 only ?

              D 1 Reply Last reply
              0
              • A amistry_petlad

                void CDigitalclockDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting . ........ ............ ............ } else { CDialog::OnPaint(); GetLocalTime(&time); char str[256]; sprintf_s(str,"02d%:02d%:02d%",time.wHour,time.wMinute,time.wSecond); int len; int slength = (int)str.length() + 1; len = MultiByteToWideChar(CP_ACP, 0, str.c_str(), slength, 0, 0); wchar_t* buf = new wchar_t[len]; MultiByteToWideChar(CP_ACP, 0, str.c_str(), slength, buf, len); SetDlgItemText(IDC_STATIC,(LPCTSTR)str); } }

                M Offline
                M Offline
                Maximilien
                wrote on last edited by
                #9

                Why do you do this in the OnPaint ? SetDlgItemText(IDC_STATIC,(LPCTSTR)str); you want to print str or buf ?

                This signature was proudly tested on animals.

                A 1 Reply Last reply
                0
                • M Maximilien

                  Why do you do this in the OnPaint ? SetDlgItemText(IDC_STATIC,(LPCTSTR)str); you want to print str or buf ?

                  This signature was proudly tested on animals.

                  A Offline
                  A Offline
                  amistry_petlad
                  wrote on last edited by
                  #10

                  ya buf i have chnaged , the code is working but its not display the hh:mm:yy its only shows current hours in the static control GetLocalTime(&time); char str[256]; sprintf(str,"%d:%d:%d",time.wHour,time.wMinute,time.wSecond); std::string str1(str); int len; int slength = (int)str1.length() + 1; len = MultiByteToWideChar(CP_ACP, 0, str1.c_str(), slength, 0, 0); wchar_t* buf = new wchar_t[len]; MultiByteToWideChar(CP_ACP, 0, str1.c_str(), slength, buf, len); SetDlgItemText(IDC_STATIC1,(LPCTSTR)buf);

                  1 Reply Last reply
                  0
                  • M messages

                    Can you show your code,please?

                    A Offline
                    A Offline
                    amistry_petlad
                    wrote on last edited by
                    #11

                    the code working but display hours only i have increased the size of control but still not able to see the entire string GetLocalTime(&time); char str[256]; sprintf(str,"%d:%d:%d",time.wHour,time.wMinute,time.wSecond); std::string str1(str); int len; int slength = (int)str1.length() + 1; len = MultiByteToWideChar(CP_ACP, 0, str1.c_str(), slength, 0, 0); wchar_t* buf = new wchar_t[len]; MultiByteToWideChar(CP_ACP, 0, str1.c_str(), slength, buf, len); SetDlgItemText(IDC_STATIC1,(LPCTSTR)buf);

                    H 1 Reply Last reply
                    0
                    • A amistry_petlad

                      now its working when i used sprintf but in the dialog it should be print hh:mm:yy I have debug the application i got the perfect string in all varibals but when display in the static control its only shows the hour nothing more. So here in US 1:40:40 so must be displayed but it show me 1 only ?

                      D Offline
                      D Offline
                      David Crow
                      wrote on last edited by
                      #12

                      amistry_petlad wrote:

                      ...now its working when i used sprintf but...

                      It makes no difference whether you use sprintf() or sprintf_s(). If you have a malformed format string, you can't expect correct results. What is the value of buf prior to calling SetDlgItemText()?

                      "Love people and use things, not love things and use people." - Unknown

                      "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

                      A 1 Reply Last reply
                      0
                      • A amistry_petlad

                        When I had simply used sprintf complier generated warning for sprintf AND give suggestion fo sprintf_s i am using MSVS2008 ON VISTA I have change the code following way it compile succesful but rund time break the application GetLocalTime(&time); char str[256]; sprintf_s(str,"02d%:02d%:02d%",time.wHour,time.wMinute,time.wSecond); std::string str1(str); int len; int slength = (int)str1.length() + 1; len = MultiByteToWideChar(CP_ACP, 0, str1.c_str(), slength, 0, 0); wchar_t* buf = new wchar_t[len]; MultiByteToWideChar(CP_ACP, 0, str1.c_str(), slength, buf, len); SetDlgItemText(IDC_STATIC1,buf);

                        J Offline
                        J Offline
                        Jijo Raj
                        wrote on last edited by
                        #13

                        amistry_petlad wrote:

                        sprintf_s(str,"02d%:02d%:02d%",time.wHour,time.wMinute,time.wSecond);

                        The format string is "02d%:02d%:02d%" or "%02d:%02d:%02d" ? ;) Need to brushup those old C lessons? :-D BTW, Why can't you use CString?

                        SYSTEMTIME time;
                        GetLocalTime(&time);

                        CString csTime;
                        csTime.Format( _T("%02d:%02d:%02d"), time.wHour,time.wMinute,time.wSecond );

                        SetDlgItemText(IDC_STATIC1,csTime);

                        I apoligize that since i don't have VS2008 installed, the above code snippet is compiled in VS6.0. So try it. Regards, Jijo.

                        _____________________________________________________ http://weseetips.com[^] Visual C++ tips and tricks. Updated daily.

                        A 1 Reply Last reply
                        0
                        • D David Crow

                          amistry_petlad wrote:

                          ...now its working when i used sprintf but...

                          It makes no difference whether you use sprintf() or sprintf_s(). If you have a malformed format string, you can't expect correct results. What is the value of buf prior to calling SetDlgItemText()?

                          "Love people and use things, not love things and use people." - Unknown

                          "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

                          A Offline
                          A Offline
                          amistry_petlad
                          wrote on last edited by
                          #14

                          buf has garbage value now In my debugging i have seen that if 15:22:34 Then in buf shows L(1) only show what is the reason? so then this character display in the static control

                          1 Reply Last reply
                          0
                          • J Jijo Raj

                            amistry_petlad wrote:

                            sprintf_s(str,"02d%:02d%:02d%",time.wHour,time.wMinute,time.wSecond);

                            The format string is "02d%:02d%:02d%" or "%02d:%02d:%02d" ? ;) Need to brushup those old C lessons? :-D BTW, Why can't you use CString?

                            SYSTEMTIME time;
                            GetLocalTime(&time);

                            CString csTime;
                            csTime.Format( _T("%02d:%02d:%02d"), time.wHour,time.wMinute,time.wSecond );

                            SetDlgItemText(IDC_STATIC1,csTime);

                            I apoligize that since i don't have VS2008 installed, the above code snippet is compiled in VS6.0. So try it. Regards, Jijo.

                            _____________________________________________________ http://weseetips.com[^] Visual C++ tips and tricks. Updated daily.

                            A Offline
                            A Offline
                            amistry_petlad
                            wrote on last edited by
                            #15

                            sorry ,in hurry i had type that things but in my code it is ok but sorry for that. and you are genius becoz you find that mistake anyways thanks for this code

                            J 1 Reply Last reply
                            0
                            • A amistry_petlad

                              sorry ,in hurry i had type that things but in my code it is ok but sorry for that. and you are genius becoz you find that mistake anyways thanks for this code

                              J Offline
                              J Offline
                              Jijo Raj
                              wrote on last edited by
                              #16

                              amistry_petlad wrote:

                              and you are genius

                              :rolleyes: Regards, Jijo.

                              _____________________________________________________ http://weseetips.com[^] Visual C++ tips and tricks. Updated daily.

                              S 1 Reply Last reply
                              0
                              • J Jijo Raj

                                amistry_petlad wrote:

                                and you are genius

                                :rolleyes: Regards, Jijo.

                                _____________________________________________________ http://weseetips.com[^] Visual C++ tips and tricks. Updated daily.

                                S Offline
                                S Offline
                                SandipG
                                wrote on last edited by
                                #17

                                You guys dont like _strdate and _strtime functions, do you?? :)

                                Regards, Sandip.

                                1 Reply Last reply
                                0
                                • A amistry_petlad

                                  the code working but display hours only i have increased the size of control but still not able to see the entire string GetLocalTime(&time); char str[256]; sprintf(str,"%d:%d:%d",time.wHour,time.wMinute,time.wSecond); std::string str1(str); int len; int slength = (int)str1.length() + 1; len = MultiByteToWideChar(CP_ACP, 0, str1.c_str(), slength, 0, 0); wchar_t* buf = new wchar_t[len]; MultiByteToWideChar(CP_ACP, 0, str1.c_str(), slength, buf, len); SetDlgItemText(IDC_STATIC1,(LPCTSTR)buf);

                                  H Offline
                                  H Offline
                                  Hamid Taebi
                                  wrote on last edited by
                                  #18

                                  You can set size of font for this control.

                                  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