Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   problem beim erstellen eines API Windows (https://www.delphipraxis.net/115554-problem-beim-erstellen-eines-api-windows.html)

EWeiss 13. Jun 2008 23:16


problem beim erstellen eines API Windows
 
kann mir jemand sagen warum ich trotz erfolgreichen registrieren der wndClass
kein Window erzeugen kann?

Bekomme immer ein 0 Handle

gruss Emil

1234588 13. Jun 2008 23:19

Re: problem beim erstellen eines API Windows
 
vll. hast du bei CreateWindowEX() was falsches uebergeben?

EWeiss 13. Jun 2008 23:25

Re: problem beim erstellen eines API Windows
 
Zitat:

Zitat von 1234588
vll. hast du bei CreateWindowEX() was falsches uebergeben?

Delphi-Quellcode:
function BassBoxWndThread(glCtrW: PWord): integer;
var
  Msg     : TMsg;
  wClass  : TWndClass;
  MsgReturn: longbool;

const
  BBClassName = 'BassBoxVis';
  BBTitle    = 'BassBox';

begin

  h_Instance := GetModuleHandle(nil);
  with wClass do
  begin
    style        := CS_VREDRAW or CS_HREDRAW or CS_DBLCLKS;
    cbClsExtra   := 0;
    cbWndExtra   := 0;
    hInstance    := h_Instance;
    hIcon        := 0;
    hCursor      := LoadCursor(0, IDC_ARROW);
    hbrBackground := 0;
    lpszMenuName := nil;
    lpszClassName := BBClassName;
    lpfnWndProc  := @VisualProc;
  end;

  if windows.RegisterClass(wClass) <> 0 then
    ClassRegistered := True;

   glCtrW^ := CreateWindowEx(WS_EX_STATICEDGE,
                            BBClassName,
                            BBTitle,
                            WS_CHILD or WS_VISIBLE,
                            0,
                            0,
                            100,
                            100,
                            BB_VisDataThread.ParentHandle,
                            0,
                            h_Instance,
                            nil);


  if (glCtrW^  <> 0) then
sehe da nichts falsches auf anhieb

gruss Emil

turboPASCAL 14. Jun 2008 00:55

Re: problem beim erstellen eines API Windows
 
Und wie sieht die wClass aus ?
//Edit: Brille ned auf der Nase gehabt. ;)

Medium 14. Jun 2008 02:45

Re: problem beim erstellen eines API Windows
 
Eine Unstimmigkeit, die nicht zwangsläufig der Fehler sein muss:

CreateWindowEx gibt ein HWND zurück, und
Zitat:

Zitat von Windows.pas
Delphi-Quellcode:
type
  HWND = type LongWord;


Daher dürfte ein Word nicht ausreichen.

EWeiss 14. Jun 2008 10:52

Re: problem beim erstellen eines API Windows
 
Zitat:

Zitat von Medium
Eine Unstimmigkeit, die nicht zwangsläufig der Fehler sein muss:

CreateWindowEx gibt ein HWND zurück, und
Zitat:

Zitat von Windows.pas
Delphi-Quellcode:
type
  HWND = type LongWord;


Daher dürfte ein Word nicht ausreichen.

Danke das scheint es zu sein ...
Wenn ich allerdings einen Breakpoint auf glCtrW^ := CreateWindowEx setze
gehts nimmer ;)

Muss mal schaun was das ist.

gruss Emil

Ghostwalker 14. Jun 2008 12:25

Re: problem beim erstellen eines API Windows
 
Mach doch einfach mal ein DWORD bzw. PDWORD draus...dann sollte es immer gehen. Speicheradressen (und ein Handle ist nix anderes) haben immer positive 32-Bit-Werte (oder natürlich 64-Bit :) )

EWeiss 14. Jun 2008 13:03

Re: problem beim erstellen eines API Windows
 
Zitat:

Zitat von Ghostwalker
Mach doch einfach mal ein DWORD bzw. PDWORD draus...dann sollte es immer gehen. Speicheradressen (und ein Handle ist nix anderes) haben immer positive 32-Bit-Werte (oder natürlich 64-Bit :) )

Jo Danke das erleichtert mir die Arbeit mit dem Pointer.

gruss Emil


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 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