Hallo,
ich habe eine Hauptnachrichten Schleife und eine für ein Editfeld. Wenn ich nun in der Hauptnachrichten Schleife den focus in das Editfeld setze gelange ich in die Editfeld Schleife und bekomme auch Tastatureingaben. Nach der Entertaste wird wieder zur Hauptnachrichten Schleife gewechselt. Das funktioniert so weit, aber der Focus bleibt auf dem Editfeld und wenn ich versuche in der Editfeld Schleife den Focus auf ein anders Feld zulegen stürzt das Programm ab. In dem switch(uMsg) funktioniert es auch nicht da bleibt er in dem Editfeld.
ich habe eine Hauptnachrichten Schleife und eine für ein Editfeld. Wenn ich nun in der Hauptnachrichten Schleife den focus in das Editfeld setze gelange ich in die Editfeld Schleife und bekomme auch Tastatureingaben. Nach der Entertaste wird wieder zur Hauptnachrichten Schleife gewechselt. Das funktioniert so weit, aber der Focus bleibt auf dem Editfeld und wenn ich versuche in der Editfeld Schleife den Focus auf ein anders Feld zulegen stürzt das Programm ab. In dem switch(uMsg) funktioniert es auch nicht da bleibt er in dem Editfeld.
Code:
LRESULT CALLBACK BasicScanProc(HWND,UINT,WPARAM,LPARAM);
WNDPROC pOldWndProc; //Sicherungs Pointer
// Hauptnachrichten Schleife
LRESULT CALLBACK BasicScanProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_INITDIALOG:
// Handle vom Editfeld holen
hctl_zstand = GetDlgItem(hwnd,IDC_EDIT_STAND);
// Den Pointer der Hauptnachrichtenschleife sichern
pOldWndProc = (WNDPROC)SetWindowLong( hctl_zstand, GWL_WNDPROC, LONG_PTR)MyEditProc);
...
break;
case E_SCN_SUCCESS:
// Focus auf das Editfeld
SetFocus(hctl_zstand);
break;
// Nachrichten Schleife Tasteneingabe Editfeld
LRESULT CALLBACK MyEditProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_KEYUP :
if (wParam == VK_RETURN)
{
Edit_GetText(hctl_zstand, szEingabe,14);
}
break;
}
// Zurück zur Hauptnachrichten Schleife BasicScanProc
return CallWindowProc(pOldWndProc, hwnd, uMsg, wParam, lParam);
}