Groupebox Style zu einer schmalen Linie?
-
Hallöchen,
ich würde gern eine Grenzlinie zwischen einigen Buttons setzen, und zwar soll diese so aussiehen wie die Nr.1 auf folgender Grafik:
http://derfeind2k.de/daten/frame_styles.pngDas wäre ja dann etwa ein Button mit einfach-flachen Rändern, wie die Nr. 2 es darstellt (falls es einen solchen Button denn gibt).
Das Problem ist, normalerweise erstellt man solche Rahmen ja mittels Groupebox Style, dann entsteht aber nur soetwas wie in Nr. 3. Wenn ich dann die Höhe auf 2 Pixel einstelle, gibt es scheinbar eine Grenze in der minimalen Größe, sodass es nicht kleiner wird als in Nr. 4 auf dem Bild.
Die Frage ist nun, wie bekomm ich entweder diese Groupbox so klein, dass es wie ein einziger Strich (Nr. 1) aussieht, oder wie bekommt man soetwas sonst hin? Eventuell gibt es ja diesen Style aus Nr. 2 der einfach Flache Ränder macht und den men bis zu 2 Pixel zusammen schieben kann und damit die Linie darstellen kann? (Dinge, wie manuell Linien ziehen möchte ich möglichst vermeiden. Irgendwo muss es doch so einen Style geben, denn es gibt ja einige Programme die eine solche Trennlinie haben.)Wär nett wenn mir da jemand bei helfen könnt, die MSDN ist leider voll von tausend Infos aber nicht dem was ich suche. (Leider wird man da manchmal mit Infos nur so vollgehäuft und sieht vor lauter Hilfe die Lösung nicht mehr)

mfg.
Ynnus
-
Zeichne es doch schnell selbst:
HPEN pen; HGDIOKJ oldPen; pen=CreatePen(PS_SOLID,1,GetSysColor(COLOR_3DSHADOW)); oldPen=SelectObject(hdc,pen); MoveToEx(hdc,startx,starty,NULL); LineTo(hdc,endx,starty); DeleteObject( SelectObject(hdc,oldPen) ); pen=CreatePen(PS_SOLID,1,GetSysColor(COLOR_3DHILIGHT)); oldPen=SelectObject(hdc,pen); MoveToEx(hdc,startx,starty+1,NULL); LineTo(hdc,endx,starty+1); DeleteObject( SelectObject(hdc,oldPen) );
-
Das wäre natürlich eine Lösung, die hab ich für mich mal als Letzte Möglichkeit eingeordnet. Es muss doch eine Möglichkeit geben, so eine Trennlinie als Window, Button oder sonstwie (nur eben nur umständlich selber Zeichnen) zu erstellen, die API kann doch sonst auch alles (Nahezu).
Denn wenn ich viele dieser Trennlinien habe wäre es ein unheimlicher Vorteil, wenn Windows die als Fenster selbst verwalten und neuzeichnen würde.
-
Probier das mal:
CreateWindowEx(WS_EX_STATICEDGE,"STATIC","",WS_CHILD|WS_VISIBLE,x,y,breite,2,parentWnd,NULL,hInstance,NULL);...zumindest ohne WinXP Theming an, sieht das so aus

-
Astrein, das ist es! Vielen Dank, ihr habt mir da schon wieder flott weitergeholfen.

(Kann es sein, dass das Board vorhin offline war? Oder die Datenbank nicht erreichbar? Jedenfalls kam ich nicht auf die Seite. Da hab ich mir in den paar Stunden abgemüht, die MSDN nach einer Lösung zu durchsuchen, hab aber keine gefunden. Also vielen Dank für die schnelle Hilfe, jetzt gehts.
)
-
Das ist ein Simple Graphics Control als Frame (Rahmen) mit Style SS_ETCHEDHORZ.