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 Offline
    A Offline
    amistry_petlad
    wrote on last edited by
    #1

    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

    D M 2 Replies Last reply
    0
    • 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

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

      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 1 Reply Last reply
      0
      • 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