AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi CreateWindowEx liefert kein Handle
Thema durchsuchen
Ansicht
Themen-Optionen

CreateWindowEx liefert kein Handle

Ein Thema von Neutral General · begonnen am 14. Okt 2007 · letzter Beitrag vom 14. Okt 2007
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

CreateWindowEx liefert kein Handle

  Alt 14. Okt 2007, 17:14
Hi,

Sorry das ich nerve aber bevor ich hier irgendwas kaputt mache muss ich meine Wut in Form dieses Threads loswerden.

Ich erstelle mit CreateWindowEx ein Fenster:

Delphi-Quellcode:
var
  WindowClass: TWndClassEx = (style: 0;
                              lpfnWndProc: @WndProcDispatch;
                              cbClsExtra: 0;
                              cbWndExtra: 4;
                              hIcon: 0;
                              hCursor: 0;
                              lpszMenuName: nil;
                              hIconSm: 0;
                              );
begin
  WindowClass.cbSize := SizeOf(TWndClassEx);
  WindowClass.lpszClassName := 'wnd';
  WindowClass.hInstance := SysInit.hInstance;
  WindowClass.hbrBackground := GetSysColorBrush(COLOR_BTNFACE);
  RegisterClassEx(WindowClass);
end;
Delphi-Quellcode:
FHandle := CreateWindowEx(0,WindowClass.lpszClassname,WindowClass.lpszClassName,
                            WS_CAPTION or WS_SYSMENU or WS_SIZEBOX or WS_MAXIMIZEBOX or WS_MINIMIZEBOX,
                            FLeft,FTop,FWidth,FHeight,HWND_DESKTOP,0,hInstance,nil);
So und ich in FHandle steht nachher ne 0. GetLastError sagt das alles in Ordnung ist. Generell ist überall alles in Ordnung außer das ich kein Handle kriege. Und vor ner verdammten (sry) halben Stunde gings noch und ich hab doch gar nix gemacht man

Also ich könnt ja an die Decke springen. Jetzt da quasi alle meine Probleme gelöst waren geht nix mehr

HELFT MIR -.-

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: CreateWindowEx liefert kein Handle

  Alt 14. Okt 2007, 17:31
Delphi-Quellcode:
var
  WindowClass: TWndClassEx = (style: 0; // <--<< sollte hier nich noch was hin ?
                              lpfnWndProc: @WndProcDispatch;
                              cbClsExtra: 0;
                              cbWndExtra: 4; // <--<< was 'n das ???
                              hIcon: 0;
                              hCursor: 0;
                              lpszMenuName: nil;
                              hIconSm: 0;
                              );
begin
  WindowClass.cbSize := SizeOf(TWndClassEx);
  WindowClass.lpszClassName := 'wnd';
  WindowClass.hInstance := SysInit.hInstance;
  WindowClass.hbrBackground := GetSysColorBrush(COLOR_BTNFACE);
  RegisterClassEx(WindowClass);
end;
Was gibt dir denn RegisterClassEx als Result zurück ?

Nur mal so nebenbei:
FHandle := CreateWindowEx(0,WindowClass.lpszClassname,WindowClass.lpszClassName, ... Klassenname und Fenstername sollen die selben sein ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: CreateWindowEx liefert kein Handle

  Alt 14. Okt 2007, 17:33
Hi,

RegisterClassEx liefert ne Zahl <> 0.

Ja das die Caption = dem Klassenname ist, ist schon richtig. Dürfte aber auch nichts ausmachen.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: CreateWindowEx liefert kein Handle

  Alt 14. Okt 2007, 17:50
Zitat:
Return Values

If the function succeeds, the return value is an atom that uniquely identifies the class being registered.

If the function fails, the return value is zero. To get extended error information, call GetLastError.


Delphi-Quellcode:
var
  wc : TWndClassEx = (
    cbSize : SizeOf(TWndClassEx);
    Style : CS_HREDRAW or CS_VREDRAW;
    lpfnWndProc : @WndProc;
    cbClsExtra : 0;
    cbWndExtra : 0;
    hbrBackground : COLOR_APPWORKSPACE;
    lpszMenuName : nil;
    lpszClassName : ClassName;
    hIconSm : 0;
  );
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: CreateWindowEx liefert kein Handle

  Alt 14. Okt 2007, 17:54
Zitat von turboPASCAL:
Zitat:
Return Values

If the function succeeds, the return value is an atom that uniquely identifies the class being registered.

If the function fails, the return value is zero. To get extended error information, call GetLastError.


Delphi-Quellcode:
var
  wc : TWndClassEx = (
    cbSize : SizeOf(TWndClassEx);
    Style : CS_HREDRAW or CS_VREDRAW;
    lpfnWndProc : @WndProc;
    cbClsExtra : 0;
    cbWndExtra : 0;
    hbrBackground : COLOR_APPWORKSPACE;
    lpszMenuName : nil;
    lpszClassName : ClassName;
    hIconSm : 0;
  );
Was willst du mir damit sagen? Es hat ja noch geklappt vorher.. ich hab ja ein ganzes Programm schon geschrieben gehabt. Ich weiß was in das TWndClassEx Record rein muss. cbWndExtra ist dafür das ich mit

SetWindowLong(FHandle,GWL_USERDATA,Data); noch Daten anhängen kann. Um genau zu sein einen Pointer. Und das hat ja bisher auch immer alles geklappt. Ich kapiers einfach nicht.

Ach ja: Das angegebene WndProc springt sogar an. Es erhält nur keine WM_CREATE Message. Mit dem WindowHandle was ich da bekomme kann ich sogar Nachrichten an das Fenster senden.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  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 06:29 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