Go4Expert

Go4Expert (http://www.go4expert.com/)
-   MFC (http://www.go4expert.com/forums/mfc/)
-   -   how to display time in place of MY TIME (http://www.go4expert.com/forums/display-time-time-t20729/)

palz 21Jan2010 23:52

how to display time in place of MY TIME
 
i have used OnNcPaint to diplay text init using the following code.

Code:

      void CMainWnd::OnNcPaint( )
      {
            HDC dc = GetWindowDC()->m_hDC;
            RECT rectWnd = {800,4,880,23};
            FillRect(dc, &rectWnd, (HBRUSH)GetStockObject(DKGRAY_BRUSH));
            SetBkMode(dc, TRANSPARENT);
            SetTextColor(dc, RGB(255, 0,0));
              DrawText(dc, "MY TIME", strlen("My TIME"), &rectWnd, 0);
            ::ReleaseDC(m_hWnd,dc);
        }

and used timer to show the time in any active window using the following code

Code:

          void CMainWnd::OnTimer(UINT_PTR nIDEvent)
          {
                HWND hWnd;
                hWnd = ::GetForegroundWindow();
                CWnd *pWnd;
                pWnd = CWnd::FromHandle(hWnd);
                CTime Time = CTime::GetCurrentTime();
                CString strTime=Time.Format("%H:%M:%S");
                pWnd->SetWindowText(strTime);
          }

the problem is i want to place the updated time(IN TIMER) in the place of "MY TIME" .
HOW TO DO THAT.
i am unable to integrate them both.
PLZ HELP ME.

shabbir 22Jan2010 08:15

Re: how to display time in place of MY TIME
 
In the class CMainWnd Define the member variable CString strTime and assigning it in OnTimer will update it and NCPaint will Display it.

Remember there can be painting issue of the Non-Client Window

palz 22Jan2010 09:01

Re: how to display time in place of MY TIME
 
there are painting issues as u said. how to solve them.is there any simple method

can i use DrawText to display upadated time.

my require output is towards rightside of window.
[img]D:\modified1[/img]

plz help


All times are GMT +5.5. The time now is 07:59.