000
06.03.2003, 14:40 Uhr
~Micha
Gast
|
Wie kann ich mein Button aus einer WINAPI Funktion ansprechen ? Hallo Forumsteilnehmer,
folgendes Problemchen. Ich kann nicht mein Button aus einer aufgerufenen Funktion WINAPI wieder aktivieren. Der Compiler meldet keinen Fehler bei der Ausführung bekomme ich die Meldung "Fehler in Anwendung " und das wars die Aplikation beendet sich. Folgt kurz der Code.
Code: |
//------------------------------------------------------------------------ DWORD WINAPI StartAufnahme(LPVOID ThreadId) { //SetThreadPriority(hndCapture, THREAD_PRIORITY_HIGHEST); Berechnung(); // Funktion berechnet zuerst. //Aufnahme Button wieder sichtbar machen. CWnd * pFC ; pFC = (CWnd *) GetDlgItem ( td.hWnd, IDC_BAUFNAHME) ; pFC -> EnableWindow ( TRUE ) ; // AB HIER STIMMT WAS NICHT AB DIESEM // PUNKT HABE ICH DEN ABBRUCH DES PROGRAMMS // HABE ICH DEN FALSCHEN POINTER ?? if (CloseHandle(hndCapture)==0) SetDlgItemText(td.hWnd, IDC_ERGEBNIS_FENSTER, "Kann Thread nicht schliessen "); } //------------------------------------------------------------------------ void CPidsyRDlg::OnBaufnahme()// BEI BETÄTIGEN DES BUTTONS FOLGT DIESER CODE { td.thread_id = 0; td.hWnd = this->m_hWnd; long ThreadId; hndCapture = NULL; CWnd * pF ; //Aufnahme Button dimmen. pF = (CWnd *) GetDlgItem ( IDC_BAUFNAHME) ; pF -> EnableWindow ( FALSE ) ; //THREAD WIRD HIER AUFGERUFEN hndCapture = ::CreateThread(NULL, 0L, StartAufnahme, (LPVOID)&ThreadId, 0L, &ThreadIdCapture); if (!hndCapture) { SetDlgItemText(IDC_MELDUNGEN, "Cannot open capture thread !!"); return ; } } //------------------------------------------------------------------------
|
Tue ich die mein Button IDC_BAUFNAHME falsch ansprechen ?? Eine Membervariable habe ich auch definiert aber es klappt auch nicht. Was ist falsch in diesem Code.
Danke Micha. |