Rechteck soll in den Vordergrund
-
Hallo Leute,
in meinem Dialog IDD_Page_Ausgabe befinden sich mehrere GroupBoxen.
in der zugehörigen Page_Ausgabe.cpp wird in der OnPaint ein Rechteck gezeichnetvoid CPage_Ausgabe::OnPaint() { if (RecOut == 1) { CPaintDC dc(this); CPen pen; CBrush brush; // Pen red pen.CreatePen(PS_SOLID, 3, RGB(255,0,0)); // "transparent" brush brush.CreateStockObject(HOLLOW_BRUSH); // select brush and pen dc.SelectObject(&pen); dc.SelectObject(&brush); // draw rectangle dc.Rectangle(50,80,200,250); DeleteObject(&pen); DeleteObject(&brush); } }
Das Rechteck wird aber hinten den GroupBoxen gezeichnet(ist nur zwischen den GroupBoxen sichtbar) -> wie bring ich das Rechteck in der Vordergrund?
Hat jemand vielleicht eine Idee.
mfg
-
Indem du ein - bis auf das Rechteck - transparentes Child-Fenster (Control) drüberlegst, und dieses "durchklickbar" machst, indem du WM_NCHITTEST behandelst und immer HTTRANSPARENT zurückgibst.
-
... oder anders gesagt. Alle Child Controls liegen immer über der Fläche des Dialoges.
Also wie Hustbaer es schreibt: Du benötigst ein eigenes fenster, dass in der Z-Order nach den Groupboxen kommt. Und dann benötigst Du wahrscheinlich auch noch WS_CLIPSIBLINGS.
-
Willst du mit dem drübergelegtem Rechteck die Controls verstecken ?
Dann rufe doch besser für jedes Control ShowWindow(SW_HIDE) auf.