(FAQ - WinAPI) Inputbox ????
-
@WebFritz: Warum hast du das mit diesem dummen DLGITEMTEMPLATE gemacht und nicht mit CreateWindow?
-
@frage!
Weil ich das eben mit nem Dialog machen wollte. Hast du noch nie das Gefühl gehabt, eine Herausforderung annehmen zu müssen?@dange!
Bidde! Ich setz mich jetzt mal an das Schriftart-Ändern. Ich finde, so sieht das doch noch recht scheiße aus...
-
Ich habe das Ganze jetzt noch ein wenig überarbeitet. Jetzt kann man auf relativ leichte Weise (siehe die InputBox()-Funktion) einen simplen Dialog erstellen. Nur leider nimmt der die für den Dialog angegebene Schriftart nicht an. Er übergeht das einfach. Und ich verstehe immernoch nicht warum. Aber das werde ich schon noch rausfinden...
-
mach doch SendMessage mit WM_SETFONT
-
hi,
ich hätte nicht gedacht, dass es so schwer ist eine inputbox zu machen,
das ist ja wahnsinn, bin ich der erste der sowas braucht(e)??ich schaffs nicht, die datei einzubinden, der meckert immer irgendwo rum,
ich habe eine inputbox.h erstellt, in der steht das:int InputBox(HINSTANCE hInst, HWND hwnd, LPCTSTR prompt, LPCTSTR title, LPTSTR buffer, INT buflength);
und die datei die hier gepostet ist habe ich inputbox.cpp genannt.
dann habe ich das hier versucht:int i = InputBox(hInstance, hWnd, "Eingabe in diesem Feld:", "Titel", sDummy, 256); if(i==IDOK) { MessageBox(NULL, sDummy, "Text", MB_OK); }
bei den ersten beiden parametern habe ich mein problem,
NULL kann ich nicht bei beiden nehmen, das weiß ich jetzt auch schon,
aber wenn ich
hInstanc2 als HINSTANCE
und
hWn2 als HWND
deklariere, dann kommt diese meldung:error LNK2001: unresolved external symbol "int __cdecl InputBox(struct HINSTANCE__ *,struct HWND__ *,char const *,char const *,char *,int)" (?InputBox@@YAHPAUHINSTANCE__@@PAUHWND__@@PBD2PADH@Z) Debug/Nimm3D.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe.
ist bestimmt wieder nur n minifehler von mir, aber ich hab das mit hwnd und hinstance... noch nicht so raus!
Danke für die Mühe,
Cu, Ronny
-
Du solltest den Code von WebFritzi auch noch als .cpp datei speichern und dazulinken.
@WebFritzi:
Ist der Code so in Ordnung? Ich schiebs dann nämlich mal in die FAQ, da sowas ja öfter gebraucht wird.
-
Original erstellt von Netspider:
**
und die datei die hier gepostet ist habe ich inputbox.cpp genannt.
**habe ich ja, zumindest gespeichert, ich dachte es reicht wenn ich die InputBox.h include, aber ok!
muss ich die ersten 2 parameter eigentlich ändern oder geht das so wie es im beispiel von webfritzi geschrieben ist?
-
@cd9000
JETZT ist der Code hoffentlich in Ordnung, und ich wäre dankbar dafür, wenn du das in die FAQ stellen würdest. Dann kann ich mir wenigstens immer wieder die Früchte meiner Anstrengung anschauen.@Netspider
Den ersten Parameter habe ich in der neuen Fassung herausgenommen. Der war eh überflüssig, weil man in DialogBoxIndirectParam() auch NULL im ersten Parameter stehen haben kann, wenn man die DLGTEMPLATE nicht gerade aus einer Resource geladen hat. Du solltest jetzt keine Probleme mehr damit haben. Tipp einfach das Beispiel in meinem langen Beitrag ab.
-
WebFritzi: Fein, danke!
-
irgendwie bin ich nicht in der lage, das zu starten: *grübel*
error LNK2001: unresolved external symbol "int __cdecl InputBox(struct HWND__ *,char const *,char const *,char *,int)" (?InputBox@@YAHPAUHWND__@@PBD1PADH@Z) Debug/Nimm3D.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe.
ich habe #include "InputBox.h" gemacht, die neue version von deiner cpp-datei in die InputBox.cpp geschrieben und die InputBox.h mit deinem text geschrieben.
dann habe ich die funktion so aufgerufen:int i = InputBox(hWnd, "Eingabe in diesem Feld:", "Titel", sDummy, 256); if(i==IDOK) { MessageBox(NULL, sDummy, "Text", MB_OK); }
was ist denn daran falsch, muss ich ein frisches "hWnd" benutzen, das hier ist das von meinem fenster, das erstellt wurde.
- ich kenn mich mit win-cpp eben nicht so aus -
Danke für eure hilfe, wenn mir noch jemand dabei helfen kann, den error auszuradieren, dann bin ich richtig glücklich!Cu, Ronny
-
Du musst natürlich die cpp-Datei zu deinem Projekt hinzufügen (Im VC++: Projekt->Dem Projekt hinzufügen...).