Auto Funktionsaufruf (Intervall)
-
Ich bekom die Kriese.
Erstmal Danke. Es klappt.
Mein Problem ist nur , das ichdamit nichts anfangen kann
------------
void CALLBACK EXPORT OnInstatus1(
HWND hWnd, // handle of CWnd that called SetTimer
UINT nMsg, // WM_TIMER
UINT nIDEvent // timer identification
DWORD dwTime // system time
------------Habe es auch nicht eingebaut, aber es klappt.
Was mir jetzt noch wichtig ist, ist die Bedeutung von WM_USER+1.
DANKE schon vorab und sür die andere Beantwortung.
-
"Mein Problem ist nur , das ichdamit nichts anfangen kann"<- was willst du denn genau wissen?
The WM_USER constant is used by applications to help define private messages, usually of the form WM_USER+X, where X is an integer value.
die zahlen vor wm_user sind von windows reserviert
d.h. du solltest nich nachrichten mit id 20 verschicken
lieber mit wm_user+20
-
OK. WM_USER hab ich geschnallt.
Was ich sonst nicht verstehe ist eher allgemeiner Natur.
z.B.
Da steht (MSDN)
SetTimer(
...
HWND hWnd, // handle of window for timer messages
...
);Kann ich damit nichts anfangen.
Weiß nichtmal was ein "handle" ist
-
bzgl. handle
stell dir einfach vor du hast 5 fenster und willst mit einem davon etwas machen
dann brauchst du ne variable mit der du die 5 auseinanderhalten kannst
dafür gibts handles die du bei der erstellung eines fensters bekommstin der settimer funktion gibts du mit dem handle an, an welches deiner 5 fenster die timernachrichten geschickt werden sollen
-
Ohh.
Einfacher als ich dacht.
Jetzt verstehe ich zumindest das.Ich glaub ich sollte mir mal jemanden zur seite nehmen, der mir erklärt, wie die MSDN zu verstehen ist. Dann fällt mir sicher einiges leichter.
DANK dir und BYE
-
noch zwei anmerkungen
1.wenn du mit mfc arbeitest, z.b. mit dialogen bekommst du das handle am einfachsten mit this->m_hWnd
2.schau in der mfc nich nach den winapi funktionen z.b. SetTimer(...
sondern nach den mfc funktionen CWnd::SetTimer(...
-
//in der initdialog
SetTimer(WM_USER+1,1000,OnInstatus1);wie wärs wenn du dir die Beschreibung von SetTimer in der MSDN genauer durchliest? WM_USER hat hier überhaupt nichts zu suchen.
-
und warum?
nur weil ne funktion eingetragen wurde?
-
Sovok schrieb:
und warum?
nur weil ne funktion eingetragen wurde?warum steht in der MSDN und die Beschreibung zu TimerProc Callback-Funktion solltest du dir auch genauer durchlesen, denn für seine Zwecke ist diese absolut unnötig.
-
obs nötig oder unnötig is spielt keine rolle
er wollte vorallem wissen wies geht und warumdie standardvariante mit OnTimer steht ja eh in seinem tutorial
-
Sovok schrieb:
obs nötig oder unnötig is spielt keine rolle [...]
Ah ja...
-
Shlo schrieb:
Sovok schrieb:
obs nötig oder unnötig is spielt keine rolle [...]
Ah ja...
bezogen auf den kenntnisstand des fragenden
ihm isses nur wichtig dasses funzt, nich obs optimal is oder er von einer ecke der doku zur nächsten geschickt wird
-
Ich wollte hier keinen Streit auslösen!
Danke nochmal. Hat alles wunderbar hingehauen.Jetzt ist diese Funktion aber wieder hinfällig, denn die Funktion die jetzt im Timer läuft, soll permanent laufen. Also ein THREAD. Kennt ihr euch damit aus?
Habe dafür schon einen Frage-Thread geschrieben. Müsste weiter unten stehen. Schreibt da oder hier. Ist egal.
PS
In der MSDN ist ein eigentlich gutes Beispiel, aber aus irgendeinen Grund läuft es nicht.
-
eigentlich brauchst du erstrmal nur createthread(), closehandle() und ne fuktion in der der thread läuft
-
Hast du dir mal meine anderen Frage-Thread angesehen?
Da ist leider nichts mit "nur CreateThread()".
Und wenn es so einfach ist, könntest du nicht den Code dafür in den anderen Thread schreiben?
-
Hi
Das mit den Threads ist echt ziemlich einfach:
UINT ThreadFunktion(LPVOID pParam) { CDeinDialog* pDialog = (CDeinDialog*) pParam; for(int i=1; i<=10; i++) { CString strTemp; strTemp.Format("Schleife %d", i); pDialog->GetDlgItemText(IDC_SHOWSTATUS, strTemp); Sleep(500); // eine halbe Sekunde warten } } CDeinDialog::OnButton1() { AfxBeginThread(ThreadFunktion, this); }Code ist selbsterklärend (Ein Statusfeld zählt von i bis 10)
Grüße Rapha
-
habs ihm schon in den anderen thread gepostet
jetzt hat er glaub 4 varianten zur auswahl *g*