Konstanten/Zahlen von Userlibs
Übersicht

![]() |
Der EisvogelBetreff: Konstanten/Zahlen von Userlibs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo
ich habe eine Frage zu Userlibs. Hier erstmal mein Userlib: Zitat: .lib "User32.dll"
LoadIcon%(hInstance%,ipIconName$) : "LoadIconA" DrawIcon%(hdc%,x%,y%,hIcon%) : "DrawIcon" Woher weiß ich jetzt was für eine Zahl oder Konstante ich für: -hInstance% -hdc% einsetzten muss. Die anderen Variablen definiere ich so: -ipIconName$=Pfad des Icons -x%=X-Koordinate (an diesem X-Punkt wird das Bild gezeichnet) -y%=Y-Koordinate (an diesem Y-Punkt wird das Bild gezeichnet) -hIcon%=Name der Variable des Icons, das mit "LoadIcon" in den Speicher geholt wurde. Ich habe schon im APIViewer geguckt, aber habe darüber nichts gefunden, auch die Forensuche hat mir nicht geholfen. |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
DennY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
also die Funktion Loadicon(...) verwende ich auch in C++. (auch über die "User32.dll") ich hab da mal eben was rausgeschnitten: Code: [AUSKLAPPEN] // Windows-Hauptfunktion int WINAPI WinMain(HINSTANCE hInstance,...) { //... LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)); //.... return 0; } Dieses "hInstance" ist (vermute ich) eine Instanz (also ein Objekt der Klasse) des Fensters, welches du mit dem Icon erstellen willst. |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hä, des check ich net. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ehrlich gesagt jemand der eine Konstante an eine DLL schicken will der ist noch nicht fit für das Thema. Es gibt in diesem und im englischen Board Tutorials über userlibs. Außerdem gibt es hier Tutorials zu c/c++ dll (damit du siehst wie so was aufgebaut ist) http://www.spieleprogrammierer...php?t=6200
Dann gibt es noch hier eine offizielle Anleitung der Parameter : http://www.blitzbasic.com/sdks..._specs.txt Da musst du erst mal durch sonst hat der Rest gar keinen Zweck. cu |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
1. Das beantwortet nicht meine Frage.
2. Ich habe meines achtens nicht gesagt das ich eine Konstante an eine Dll schicken will. Ich möchte einfach nur wissen was für Zahlen ich da einsetzten muss. |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
http://search.msdn.microsoft.c...lang=de-de
http://search.msdn.microsoft.c...lang=de-de Da sollte alles zu finden sein. cu |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Abrexxes hat Folgendes geschrieben: Da sollte alles zu finden sein.
Entweder bin ich zu blöd oder da gibt es nichts was mir weiterhelfen könnte. |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
DennY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Marc-Peter hat Folgendes geschrieben: Ich möchte einfach nur wissen was für Zahlen ich da einsetzten muss.
Also ich glaube nicht, dass man da einfach nur Zahlen bei dieser Funktion übergeben muss. Achja mal so ne Frage: Hast du schon Google benutzt? http://www.cpp-tutor.de/mfc/mf...adicon.htm <--- da wird ganz gut erklärt http://www.google.de/search?hl...ogle-Suche |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Marc-Peter, als Anfänger solltest du dich nicht unbedingt an der WinAPI versuchen. Die ist um einiges komplexer als BlitzBasic und es wird erwartet, dass du zumindest im Ansatz verstehst, wie Windows arbeitet. Wenn du ein konkretes Problem hast ( bzw. ein Problem, das sich nur mit der WinAPI lösen lässt ), kannst du natürlich fragen, aber um nur ein bisschen "rumzuspielen" reichen deine Kenntnisse, soweit ich das beurteilen kann, noch nicht aus ( ist nicht böse gemeint ).
Um ein wenig Licht ins Dunkel zu bringen: Die LoadIcon-Funktion kann keine Icons aus .ico-Dateien laden. Sie lädt nur diejenigen, die sich in einer .exe befinden, daher brauchst du den hInstance% Parameter. Jedes laufende Windows-Programm hat eine Instanz; mit dem Handle dieser Instanz lässt es sich eindeutig identifizieren. Wenn du ein Icon aus einer Datei laden möchstet, muss du LoadImage verwenden. Der hDC% Parameter bei DrawIcon muss ein Device Context sein, auf den gezeichnet wird. Du kannst dir das wie eine Art Zeichenfläche vorstellen. Jedes Fenster besitzt einen solchen DC, den du mit "GetDC" ermitteln kannst. Außerdem sind diese ganzen Werte keine Konstanten. Im MSDN findest du alles, was du brauchst -> http://msdn2.microsoft.com/en-...fault.aspx Zum Beispiel für die Funktion LoadImage -> http://msdn2.microsoft.com/en-...48045.aspx |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie komme ich an den hInstance%-Parameter? | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mit GetModuleHandle! Du hast es doch schon hier benutzt. Denk wenigstens ein bisschen nach, bevor du etwas postest. ![]() |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Verschoben da falsches Board | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habs so versucht:
Code: [AUSKLAPPEN] hWnd=GetActiveWindow()
icon=LoadIcon(GetModuleHandle(0),1) DrawIcon(GetDC(hWnd),10,10,icon) WaitKey End Funktioniert leider nicht. ![]() EDIT: hab den Code nochmal geändert. Tut trotzdem nicht. |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
Marek |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Probiers mal vorsichtshalber mit einer dieser Konstanten anstatt dem Icon:
Code: [AUSKLAPPEN] Const API_IDI_APPLICATION = 32512
Const API_IDI_ASTERISK = 32516 Const API_IDI_CLASSICON_OVERLAYFIRST = 500 Const API_IDI_CLASSICON_OVERLAYLAST = 502 Const API_IDI_CONFLICT = 161 Const API_IDI_DISABLED_OVL = 501 Const API_IDI_ERROR = API_IDI_HAND Const API_IDI_EXCLAMATION = 32515 Const API_IDI_FORCED_OVL = 502 Const API_IDI_HAND = 32513 Const API_IDI_INFORMATION = API_IDI_ASTERISK Const API_IDI_PROBLEM_OVL = 500 Const API_IDI_QUESTION = 32514 Const API_IDI_RESOURCE = 159 Const API_IDI_RESOURCEFIRST = 159 Const API_IDI_RESOURCELAST = 161 Const API_IDI_RESOURCEOVERLAYFIRST = 161 Const API_IDI_RESOURCEOVERLAYLAST = 161 Const API_IDI_WARNING = API_IDI_EXCLAMATION Const API_IDI_WINLOGO = 32517 also z.B: Code: [AUSKLAPPEN] icon=API_IDI_QUESTION
Dann weißt du schonmal obs am LoadIcon liegt. MfG Marek |
||
Wer lesen kann ist klar im Vorteil... |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Geht nicht. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du sollst LoadImage verwenden! Außerdem kannst du nicht einfach so in einen DC zeichnen und erwarten, dass das Icon angezeigt wird. Um ein richtiges Ergebnis zu bekommen, musst du dich erstmal mit Windows-Nachrichten, GDI usw. beschäftigen. Mit Blitz hast du da keine Chance. Dafür brauchst du PureBasic, C++, oder etwas in der Art. | ||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group