CreateWindowEx
Übersicht

![]() |
PummelieBetreff: CreateWindowEx |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
ich versuche mit BB über die Userliv Funktion CreateWindowEx ein einfaches Fenster zu erstellen. Das Problem ist, das sich BB dabei ganz einfach mal aufhängt ![]() Hier mein decls Eintrag: Code: [AUSKLAPPEN] api_CreateWindowEx% (dwExStyle%, lpClassName$, lpWindowName$, dwStyle%, x%, y%, nWidth%, nHeight%, hWndParent%, hMenu%, hInstance%, lpParam*) : "CreateWindowExA"
Hier mein Code: Code: [AUSKLAPPEN] api_CreateWindowEx(256,0,"Test Window",$cf0000,30,30,100,100,0,0,0,0)
|
||
It's done when it's done. |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich bin mal so weit gekommen:
Code: [AUSKLAPPEN] Local classname=CreateBank(128)
;PokeString(classname,"") Local windowname=CreateBank(128) PokeString(windowname,"Test Window") Local nullbank=CreateBank(0) Const WS_EX_WINDOWEDGE=$100 api_CreateWindowEx(WS_EX_WINDOWEDGE,classname,windowname,$cf0000,30,30,100,100,0,0,0,nullbank) DebugLog "Fertig" WaitKey() End Function PokeString(BankAddr,StringOut$,BufferOffset=0) Local n For n=1 To Len(StringOut$) PokeByte BankAddr,BufferOffset,Asc(Mid$(StringOut$,n,1)) BufferOffset=BufferOffset+1 Next PokeByte BankAddr,BufferOffset,0 End Function die decls musst du ändern in: Code: [AUSKLAPPEN] api_CreateWindowEx% (dwExStyle%, lpClassName*, lpWindowName*, dwStyle%, x%, y%, nWidth%, nHeight%, hWndParent%, hMenu%, hInstance%, lpParam*) : "CreateWindowExA"
Dann hängt BB bei mir nicht und macht keinen MAV - allerdings der "Schönheitsfehler": Ich seh auf die Art kein Fenster ![]() Muss man wohl noch etwas mehr über die Styles wissen als ich - oder allgemein vlt fehlen da noch ein paar Parameter die wir alle auf 0 haben? Leider keine Ahnung. mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Pummelie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm ja, das hilft schonmal weiter, doch zeigt er aus dem grund nichts, das er einfach nix erstellt, der befehll gibt eine 0 zurück... | ||
It's done when it's done. |
Rufus Serano |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Problem ist die Window-Class(siehe hier)... Ich schätze, ohne eine DLL wird es sehr schwer da was zu erreichen. Mit den vorgefertigten WindowClasses kann man jedoch recht problemlos ein Fenster erstellen, ist alles jedoch recht eingeschränkt...
Hier mein Ergebniss: Code: [AUSKLAPPEN] Const WS_EX_TOOLWINDOW=$80 Const WS_POPUP=$80000000 bnk=CreateBank(128) hwnd = api_CreateWindowEx(ws_ex_toolwindow,"Button","TestWindow",ws_popup,10,10,300,200,SystemProperty("AppHWND"),0,0,bnk) Print hwnd api_ShowWindow(hwnd,1) WaitKey FreeBank bnk End Code: [AUSKLAPPEN] .lib user32.dll api_CreateWindowEx% (dwExStyle%, lpClassName$, lpWindowName$, dwStyle%, x%, y%, nWidth%, nHeight%, hWndParent%, hMenu%, hInstance%, lpParam*) : "CreateWindowExA" api_ShowWindow% (hwnd%, nCmdShow%) : "ShowWindow" Hoffe das hilft weiter, wenns wer schafft eine Windowclass per BB zu registrieren, die auch funktioniert, darf er mir gerne ne PM schreiben ![]() @Pummelie lpParam ist ein Pointer und muss als Bank gehandhabt werden, wenn man da ne '0' eingibt, gibts ne MAV. MfG |
||
![]() |
Pummelie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ahh super, so funktionierts, sehr eiganartig mei msdn steht irrgendwas das man es auch weg lassen kann, also das es ein optionaler paramter ist ![]() |
||
It's done when it's done. |
Rufus Serano |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
u.U. ist das das Problem das auftritt:
Zitat: hMenu [in, optional]
HMENU A handle to a menu, or specifies a child-window identifier, depending on the window style. For an overlapped or pop-up window, hMenu identifies the menu to be used with the window; it can be NULL if the class menu is to be used. Soll heißen, wenn sowohl der ClassName nist existiert als auch hMenu=Null ist, fehlen Windows die Informationen von hMenu. Demnach wird dann auch kein Fenster erstellt. ich vermute einfach mal (ungetestet), dass man den ClassName weglassen kann, wenn hMenu angegeben ist. Ist aber nur ne Spekulation... MfG ~~~EDIT~~~ Code: [AUSKLAPPEN] Const WS_EX_TOOLWINDOW=$80
Const WS_EX_APPWINDOW=$40000 Const WS_POPUP=$80000000 Const WS_CHILD=$40000000 bnk=CreateBank(128) hmenu=api_CreateMenu() Print hmenu hwnd = api_CreateWindowEx(ws_ex_appwindow,"Blitz Runtime Class","TestWindow2",0,10,10,300,200,SystemProperty("AppHWND"),hmenu,SystemProperty("ApphInstance"),bnk) Print hwnd api_ShowWindow(hwnd,1) WaitKey FreeBank bnk End Zitat: HAHA! Sprach der Hamster und sprang in den Mixer!
Jetzt müsste man nur noch Zeichenbefehle hinschicken können^^ |
||
![]() |
Pummelie |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm nette Leistung ![]() |
||
It's done when it's done. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group