Horizontaler scrollbalken wird nicht angezeigt
-
Wo wird die Funktion denn aufgerufen?
Eventuell InvalidateRect, UpdateWindow verwenden.
Und noch eine Kleinigkeit (auch wenns hier keinen Unterschied macht), beim EditControl heist der Style ES_CENTER
-
Wo? Ganz normal halt... Nach dem erstellen des Hauptfensters.
memset(&windowClass, 0, sizeof(windowClass)); windowClass.lpfnWndProc = MsgProc; windowClass.hInstance = instanceHandle; windowClass.hIcon = static_cast<HICON>(LoadImage(instanceHandle, "Icon.ico", IMAGE_ICON, 0, 0, LR_LOADFROMFILE)); windowClass.hbrBackground = reinterpret_cast<HBRUSH>(GetStockObject(DKGRAY_BRUSH)); windowClass.lpszClassName = "Main"; RegisterClass(&windowClass); windowHandle = CreateWindow("Main", "WurschtJetzt", WS_VISIBLE | WS_SYSMENU | WS_MINIMIZEBOX, 10, 10, 700, 500, 0, 0, instanceHandle, 0);InvalidateRect oder UpdateWindow... Sollte doch auch so gehn. Und danke für den Hinweis.
-
Eigentlich macht man (bzw. ich) das unter WM_CREATE bzw. WM_INITDIALOG. Aber daran sollte es nicht liegen. Wird der Scrollbalken angezeigt, wenn du eine Zeile vollschreibst, also über die eigentliche Größe des EditFeldes hinaus?
Mfg Ominion
-
Jo.
ceplusplus@loggedoff schrieb:
und der Text wird am Rand abgeschnitten...
:|
Unter WM_CREATE ist doch doof, muss wieder ein Singleton her...
-
Achso ne sorry, der Scrollbalken wird NICHT angezeigt und der Text abgeschnitten...
-
Also ich habe mal bei meinen Projekten geguckt, und da werden bei mir beide Balken durch diese Style angezeigt:
WS_VISIBLE | WS_CHILD | WS_VSCROLL | WS_HSCROLL | ES_AUTOHSCROLL | ES_MULTILINEMfg Ominion
-
Vielleicht habe ich dich jetzt missverstanden, aber meine Frage war, wo du das EditControl erstellst (bei WM_CREATE?).
Rufst du nach Erstellen deines Hauptfensters (HWND = windowHandle) einShowWindow(windowHandle, SW_SHOWNORMAL); UpdateWindow(windowHandle);auf?
-
Wo er das erstellt ist doch eigentlich ersichtlich. Zumindest denke ich (auch wegen seinem vorletzten Posts), dass er das in WinMain () macht.
Mfg Ominion
-
Ne, nicht im MessageProcess, sondern in meiner Klasse, von der in der WinMain eine Instanz erstellt wird.
ShowWindow(windowHandle, SW_SHOWNORMAL);
UpdateWindow(windowHandle);Nix gebracht.
-
Glaub Du bringst da ein paar Begriffe durch einander
.
-
Vllt. bist du auch schon zu müde :p
Mit Message Process ist IMHO die Callbackfunktion gemeint, in der eben die Messages verarbeitet werden.
Naja und ne eigene Klasse, zum Aufrufen eines Fensters schreiben, ist ja nichts neues, geschweige denn, ein Derivat der Klasse in der WinMain zu eerstellen...Mfg Ominion
-
Und warum erscheint nun ein durchsichtiger Balken?
-

-

-
Entsteht nun ein horizontaler Scrollbalken oder immer noch nicht ?
Falls ja, dann prüf mal, ob der "durchsichtige Balken" überhaupt zum Editfeld gehört.

-
http://thearchifamily.com/style/gfx/hmm.jpg
So sieht es aus, wenn ich den H-Scrollbalken deaktiviere, sieht das Feld ganz normal aus. Es scheint also, als würde die Grafik einfach nicht angezeigt werden...
-

-
Hab extra Festplatte komplett formatiert, Windows Xp neu drauf, C++ Express und PSDK neu drauf und es geht immer noch nicht!
Wie kann so etwas nur zu Stande kommen?
http://thearchifamily.com/style/gfx/hmm.jpg
-
ceplusplus@loggedoff schrieb:
Unter WM_CREATE ist doch doof, muss wieder ein Singleton her...
Nein muss es nicht, und selbst wenn Du auf Nummer sicher gehen willst (was totaler Quatsch ist, aber nun gut...) kannst Du das auch simpel mit static machen. Poste mal mehr Code, muss das im Zusammenhang sehen.
PS: Kann es sein, dass ein anderes Control, das Edit überdeckt (an der vermurksten Stelle)?
-
memset(&windowClass, 0, sizeof(windowClass)); windowClass.lpfnWndProc = MsgProc; windowClass.hInstance = instanceHandle; windowClass.hIcon = static_cast<HICON>(LoadImage(instanceHandle, "Icon.ico", IMAGE_ICON, 0, 0, LR_LOADFROMFILE)); windowClass.hbrBackground = reinterpret_cast<HBRUSH>(GetStockObject(DKGRAY_BRUSH)); windowClass.lpszClassName = "Main"; RegisterClass(&windowClass); windowHandle = CreateWindow("Main", "SlowBob v2.0", WS_VISIBLE | WS_SYSMENU | WS_MINIMIZEBOX, 10, 10, 700, 500, 0, 0, instanceHandle, 0); CreateWindowEx(0 , "Static", "IPs and name tags", WS_VISIBLE | WS_CHILD | SS_CENTER, 550, 0, 150, 20, windowHandle, 0, instanceHandle, 0); CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", 0, WS_VISIBLE | WS_CHILD | WS_VSCROLL | WS_HSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_CENTER, 250, 20, 144, 369, windowHandle, 0, instanceHandle, 0); CreateWindow("Button", "Apply", WS_VISIBLE | WS_CHILD | SS_CENTER, 550, 389, 150, 20, windowHandle, 0, instanceHandle, 0); CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", 0, WS_VISIBLE | WS_CHILD | SS_CENTER, 550, 409, 144, 20, windowHandle, 0, instanceHandle, 0); CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", 0, WS_VISIBLE | WS_CHILD | SS_CENTER, 550, 429, 144, 20, windowHandle, 0, instanceHandle, 0); CreateWindow("Button", "Add this IP range", WS_VISIBLE | WS_CHILD | SS_CENTER, 550, 449, 150, 20, windowHandle, 0, instanceHandle, 0);Kommt das dabei raus:
http://thearchifamily.com/style/gfx/hmm.jpg