AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WM_DESTROY wird nicht ausgelößt

Ein Thema von EWeiss · begonnen am 17. Feb 2009 · letzter Beitrag vom 18. Feb 2009
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

WM_DESTROY wird nicht ausgelößt

  Alt 17. Feb 2009, 20:07
Warum wird bei IDM_EXIT oder beim klick auf den X-Button kein WM_DESTROY ausgelößt?

Code:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
   int wmId, wmEvent;
   PAINTSTRUCT ps;
   HDC hdc;
    BASSVIS_KIND_T pluginKind = lastVisParam.Kind;

   switch (message)
   {
   case WM_COMMAND:
      wmId   = LOWORD(wParam);
      wmEvent = HIWORD(wParam);
      // Parse the menu selections:
      switch (wmId)
      {
      case IDM_ABOUT:
         DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
         break;
      case IDM_EXIT:
         DestroyWindow(hWnd);
         break;
      default:
         return DefWindowProc(hWnd, message, wParam, lParam);
      }
      break;
   case WM_PAINT:
      hdc = BeginPaint(hWnd, &ps);
      // TODO: Add any drawing code here...
      EndPaint(hWnd, &ps);
      break;
    case WM_SIZE:

      switch ((pluginKind))
      {
      case BASSVISKIND_WINAMP:
        myVisParamVisHandle.VisHandle = (HVIS)hWnd;
        myVisParamVisHandle.Kind = BASSVISKIND_WINAMP;
        if (lastVisParam.VisHandle != 0)
          BASSVIS_Resize(&myVisParamVisHandle, 0, 0, LOWORD(lParam), HIWORD(lParam));
        break;

      case BASSVISKIND_WMP:
     case BASSVISKIND_SONIQUE:
        if (lastVisParam.VisHandle != 0)
          BASSVIS_Resize(&lastVisParam, 0, 0, LOWORD(lParam), HIWORD(lParam));
        break;
      }

        break;
   case WM_DESTROY:
      BASSVIS_Quit(&lastVisParam);
        BASS_Free();

        PostQuitMessage(0);
       break;
   default:
      return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}
EDIT:
Hat sich erledigt.

gruss Emil
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: WM_DESTROY wird nicht ausgelößt

  Alt 18. Feb 2009, 09:29
Zitat von EWeiss:
Warum wird bei IDM_EXIT oder beim klick auf den X-Button kein WM_DESTROY ausgelößt?

EDIT:
Hat sich erledigt.
Und wo war jetzt der Fehler?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

Re: WM_DESTROY wird nicht ausgelößt

  Alt 18. Feb 2009, 12:17
Zitat von Luckie:
Zitat von EWeiss:
Warum wird bei IDM_EXIT oder beim klick auf den X-Button kein WM_DESTROY ausgelößt?

EDIT:
Hat sich erledigt.
Und wo war jetzt der Fehler?
Denke mir das hast du selbst schon bemerkt oder ?
WM_CLOSE
Zumindest wenn ich den XButton klicke.
DestroyWindow(hWnd); geht nicht.. liegt daran das zu diesen zeitpunkt die WMPVis noch aktiv ist.
Solange wie ich kein BassVis_Quit sende bleibt das Programm im speicher.
Sende ich es aus dem Menu heraus wird dieses nicht mher korrekt gezeichnet.
---------------
Aber nebenbei eine andere Frage gehört zum gleichen Thema
Warum wird in C++ der Speicher nicht so freigegeben wie in Delphi ?
Nach jedem start (SoniqueVis) wird die DLL geschlossen
FreeMem ausgefürt und alle anderen relativen Dinge freigegeben.

Aber anscheinend soll das unter C++ nicht funktionieren (Delphi geht es)
Meine Antwort Mail mit sehr schlechten Englisch...

Zitat:
Hi

I do this
when you call BASSVIS_Free
is a valid handle exist
then i give the Memory free.

you call many BASSVIS_Free after one call
then nothing work .. a valid Handle no exist anymore.
you understand ?
-------------------------------------
if (not S_ValidHandle(handle)) then
begin
BassFuncs^.SetError(BASS_ERROR_HANDLE);
Exit;
end;
-------------------------------------
is a valid handle exist
1. DeInit the Pointer of the DLL if version more or self as 1.
2. remove BMP
3. remove DC
4. FreeLibrary
5. FreeMem.

now tell me what i can do other ?

greets Emil
gruss Emil
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz