problem mit OnTimer WM_Time



  • hallo zusammen,
    ich habe ein SDI anwendung, die eine listView ständig mit Daten aus eine tabelle ausfüllt(zeitintervall).und jetzt habe ich diese SDI anwendung zu eine MDI um gewandelt, und alle funktionen funktionieren einwandfrei bis auf die funktion mit update von der listen view wird nicht augefürt.d.h wenn der anwendung startet,wird die liste ausgefüllt.aber während die laufzeit der anwendung, wird die anwendung nicht die list view nicht neue geladen. und dass ist zeit gesteurt(::OnTimer).

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    .........
    if (m_nTimer == 0)
    	{
    		m_nTimer = SetTimer(2121, 10000, NULL);
    		if (m_nTimer == 0)
    		{
    			AfxMessageBox("Kein neuer Timer verfügbar!!!", MB_ICONSTOP);
    		}
    	}
    
    	return 0;
    }
    
    void CMainFrame::OnTimer(UINT nIDEvent)
    {
        if (nIDEvent == m_nTimer)
    	{
    	CDfmUIView *pView = (CDfmUIView *) CMainFrame::GetActiveView();
    	if (pView != NULL)
    	{
    	pView->[b]FillListView()[/b];[b]// funktion die die Liste ausfüllt[/b]
    	}
    	}
    
    	CMDIFrameWnd::OnTimer(nIDEvent);
    }
    

    und als die anwendung noch SDI war hat alles ein wandfrei gelaufen.
    solle ich die OnTimer in CChildWnd oder in mein View klasse schreiben oder habt ihr einandere idee. 😕


  • Mod

    Schon mal daran gedacht das GetActiveView evtl. NULL liefert?

    Warum platzierst Du den Timer den nicht direkt in den View?



  • danke ich habe es schon in CChildframe plaziert und hat geklappt, Danke sehr 🙂


  • Mod

    Und warum im Frame überhaupt. Es geht doch um die aten des Views. Warum dezentral und dann auch noch mit den casts?


Anmelden zum Antworten