AGB  ·  Datenschutz  ·  Impressum  







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

wndproc geht nicht

Ein Thema von milurt · begonnen am 19. Jun 2022 · letzter Beitrag vom 1. Jul 2022
Antwort Antwort
milurt

Registriert seit: 16. Dez 2020
30 Beiträge
 
#1

AW: wndproc geht nicht

  Alt 19. Jun 2022, 18:03
tut mir leid himitsu,
bei deinem program reagieren die vierecke
auch nicht auf tastatur und maus.
und das ist wohl ein fehler, denn microsoft
sagt classname muss der 2te parameter sein,
zudem s1 nicht deklariert wurde:
ClassName := 'MyClassName';
Caption := 'Text';
Result := CreateWindow(S1, Caption, WS_POPUP, 20, 40, 300, 200,
wndparent, menu, instance, param);
ausserdem habe ich es jetzt so und es geht auch nicht:
Function wndproc(hwnd1:HWND;m,w:word;l:longint):LongInt;std call;
Begin
case m of
$100:dk:=-1*dk;
$201:db:=-1*db;
$200:dm:=-1*dm;
$204:db:=2;
end;
wndproc:=DefWindowProc(hwnd1,m,w,l);
End;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#2

AW: wndproc geht nicht

  Alt 19. Jun 2022, 18:40
bei deinem program reagieren die vierecke
auch nicht auf tastatur und maus.
ja, weil das fenster noch nicht richtig initialisiert war.

Es fehlten noch sehr viele Messages, welche nicht behandelt wurden.
Unter Anderem war daher auch das Fenster selber unsichtbar, bis auf diese paar gemalten Rechtecke.

Aber das mit dem DefWindowProc hattest du schon bemerkt.
Oben hatte ich es auch schon nachgetragen, mit dem Unterschied des ELSE, aber ist erstmal egal, da das Fenster auf diese Messages eh keine Behandlung hat und es praktisch keine Konflikte gibt.
else Result := DefWindowProc(Wnd, Msg, WParam, LParam);
und das ist wohl ein fehler, denn microsoft
sagt classname muss der 2te parameter sein,
Nein, das sagt Microsoft nicht.
1: ClassName = die Klasse ... Eine der vordefinierten System-Klassen, oder etwas aus RegisterClass/RegisterClassEx
2: WindowName = die Caption

Tipp: Bei Quellcode bitte [CODE]...[/CODE] drumrum. bzw. [DELPHI]...[/DELPHI] für Delphi-Code, damit man es besser lesen kann.
Ein Therapeut entspricht 1024 Gigapeut.
  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 10:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz