 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 30.11.2009, 12:50 Titel: EditBox verhält sich seltsam |
|
|
Ich rufe über einen Button eine Listbox auf, aus der ich nicht schlau werde:
Code: | Select Case message
Case WM_CREATE
cxString = LOWORD(GetDialogBaseUnits)
cyString = HiWord(GetDialogBaseUnits)
For ButtonCounter = 1 To ButtonNums
Read Buttons(ButtonCounter).iStyle, Buttons(ButtonCounter).szText
hButton(ButtonCounter) = CreateWindow("button", _
Buttons(ButtonCounter).szText, _
WS_CHILD Or WS_VISIBLE Or _
Buttons(ButtonCounter).iStyle, _
3, cyString*(2*ButtonCounter), _
10*cxString, 7*cyString/4, _
hWnd, Cast(HMENU, ButtonCounter), _
Cast(LPCREATESTRUCT, lParam)->hInstance, NULL)
Next
Return 0
Case WM_COMMAND
Select Case LoWord (wParam)
Case ID_EDIT
hEdit = CreateWindow("edit", _
"Editfeld", _
WS_CHILD Or WS_VISIBLE Or WS_BORDER Or _
DS_MODALFRAME Or WS_CAPTION Or WS_SYSMENU Or _
WS_HSCROLL Or WS_VSCROLL Or _
ES_LEFT Or ES_MULTILINE Or ES_AUTOHSCROLL Or ES_AUTOVSCROLL, _
100, _
50, _
200, _
200, _
hWnd, _
Cast(HMENU, ID_EDITFELD), _
Cast(HINSTANCE, GetWindowLong(hwnd, GWL_HINSTANCE)), _
NULL)
SendMessage(hEdit, EM_LIMITTEXT, 200, 0)
SetFocus(hEdit)
Case ID_EDITFELD
If HiWord(wParam) = EN_KILLFOCUS Then
Print "Editfenster hat den Focus verloren"
ElseIf HiWord(wParam) = EN_SETFOCUS Then
Print "Edifenster hat den Focus erhalten"
EndIf
'.....
end Select |
Das Problem: Die Listbox erscheint, aber mit grauer Titelleiste. Damit sie den Eingabefocus bekommt, muß ich extra SetFocus() aufrufen. Sie bekommt den Focus, bleibt aber grau. Ich kann Eingaben mit der Tastatur machen, aber nicht mit der Maus (Markieren, Platzieren des Carets).
Was mache ich da falsch? _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 30.11.2009, 18:11 Titel: |
|
|
Hast du nen Screenshot?
Habe jetzt keine Lust da noch ein Programm drum zu spinnen... |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 30.11.2009, 21:07 Titel: |
|
|
Wie mach ich das? Ich finde hier keinen Button zum einfügen von Screenshots.  _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 30.11.2009, 22:01 Titel: |
|
|
Screenshot einfügen:
ALT+DRUCK (bzw. nur DRUCK, wenn du den ganzen Bildschirm kopieren willst; sonst nur aktuelles Fenster)
Paint --> STRG+V --> Speichern
Bild hochladen (z.B. http://imageshack.us/ )
hier mit [img ] tags umschlossen einfügen[/img]
Eine andere Möglichkeit wäre von einer Kopie deines Programmes alles unwesentliche herauslöschen und ein ohne Änderungen lauffähiges Programm zu posten, dann wäre die Fehlersuche möglicherweise einfacher. (mMn) _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 01.12.2009, 20:00 Titel: |
|
|
Puuh- warum muß man es denn so umständlich machen. In anderen Foren kann man die Bilder direkt hochladen....
Ich hab den Code hier gepastet:
http://www.freebasic-portal.de/porticula/listbox-fehlerhaft-1033.html
fälschlicherweise "Listbox fehlerhaft" genannt, sollte "Editbox fehlerhaft" heißen.
Wie gesagt: Das Prog wird ohne Fehlermeldung compiliert. Die Editbox erscheint grau, als wäre sie inaktiv-, trotzdem nimmt sie Tastatureingaben an, aber keine Mausaktionen. Das aber auch nur, wenn ich SetFocus() aufrufe. Wenn man die Zeile auskommentiert, erscheint die Editbox zwar, bleibt aber inaktiv. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 01.12.2009, 23:19 Titel: |
|
|
Das Flag DS_MODALFRAME scheint nur für Dialoge gültig zu sein.
Code: | Cast(HINSTANCE, GetWindowLong(hwnd, GWL_HINSTANCE)) |
Lass das lieber, es sei denn der Code ist in einer DLL gekapselt. Das ist nur umständlich und verwirrend... (Außerdem ist es selbst bei einer DLL die gleiche Instanz - Es ist nur ein anderes Modul, HINSTANCE != HMODULE)
Da fehlt das abschließende Anführungszeichen. |
|
Nach oben |
|
 |
max06

Anmeldungsdatum: 05.12.2004 Beiträge: 390 Wohnort: Augsburg
|
Verfasst am: 02.12.2009, 14:37 Titel: |
|
|
Für schnelle Screenshots hab ich hier noch eine Version von meinem Screeny rumfliegen... zu finden unter http://screeny.max06.de/Screeny.zip ...
Wobei ich Screeny irgendwann mal neuschreiben werde... hab nur noch Teile von Source  |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 02.12.2009, 14:56 Titel: |
|
|
max06 hat Folgendes geschrieben: | hab nur noch Teile von Source  |
Kenn ich  |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 03.12.2009, 19:02 Titel: |
|
|
28398 hat Folgendes geschrieben: | Das Flag DS_MODALFRAME scheint nur für Dialoge gültig zu sein.
|
Habs gelöscht- hat aber nichts bewirkt. Das Editfenster wird immer noch grau dargestellt und nimmt keine Mausaktionen an.
Zitat: |
Code: | Cast(HINSTANCE, GetWindowLong(hwnd, GWL_HINSTANCE)) |
Lass das lieber, es sei denn der Code ist in einer DLL gekapselt. Das ist nur umständlich und verwirrend... (Außerdem ist es selbst bei einer DLL die gleiche Instanz - Es ist nur ein anderes Modul, HINSTANCE != HMODULE)
|
Das kann ich nicht einfach weglassen, sonst beschmeißt mich der Compiler mit einem "Argument count mistmatsch- äh: mismatch." Ich kann den Typecast löschen, aber dann bekomme ich die Warnung "passing Pointer to scalar." Ich hab mir das in C angewöhnt, weil ich da einen Compilerfehler bekommen hätte. Habs halt in FB übernommen, damit alles sauber und Fehler-/Warnungsfrei abläuft. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 03.12.2009, 19:03 Titel: |
|
|
GetModuleHandle(NULL)
Naja ich weiß jetzt spontan auch nicht mehr weiter... |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|