dynamische Buttons,Checkboxen Radiobuttons
-
Hi,
kannst du mir einige Beispiele nennen. Ich habe 3 Koordinaten l*b*h 3*4*5 wie kann ich denn Button mit dieser größe darstellen bitte helfe mir, mit einem Beispiel. Weist du auch wie mann einen Button an ein vorher geladenes Bmp zeichnet, das laden etc. klappt alles nur das zeichnen des Button nicht. Help ? Danke
-
GetDlgItem(IDC_DEIN_BUTTON)->SetWindowPos(NULL, posX, posY, breite, höhe, NULL);
beispiele zu bitmaps auf buttons findest du viele auf codeguru und codeproject
-
ich lade ein Bild mit einigen Rechtecken eines hat diese Koordinaten top 331, left 328, höhe 17. Wenn ich jetzt den Button darüber lege kommt dieser aber an einer anderen Stelle. Warum??
-
es kann sein, das du bildschirm und client-koordinaten verwendest. ich hatte ausserdem mal problme mit der genauen positionsbestimmung wegen kantenbreite u.ä. von dialogfeldern und so
-
Du brauchst noch ScreenToClient.
-
wie geht es denn? hast du ein BSP:
-
bumbumb2005 schrieb:
ich lade ein Bild mit einigen Rechtecken eines hat diese Koordinaten top 331, left 328, höhe 17. Wenn ich jetzt den Button darüber lege kommt dieser aber an einer anderen Stelle. Warum??
Gib mal den Code für die Stelle.
Im Prinzip musst du die Funktion auf das Recheck anwenden, was die Position des Buttons festlegt.
-
in der MSDN steht doch alles über die funktion
-
Hier zeichne ich das Rechteck
dc.FillSolidRect(q-g,u-z,wh,hw,RGB(255,zahl2,zahl3));
Und hier den Button
GetDlgItem(IDC_BUTTON11)->SetWindowPos(NULL,q-g,u-z,wh,hw,NULL);
und so lade ich das Bild
CWnd* pWnd = (CWnd*) GetDlgItem(IDC_STATIC_BILD); CDC* pDC = pWnd->GetDC(); CBitmap bitmap; CDC dc; CRect rect; pWnd->GetClientRect(rect); BITMAP bm; HBITMAP hPixel = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),pfad, IMAGE_BITMAP, 0,0, LR_LOADFROMFILE | LR_CREATEDIBSECTION); bitmap.Attach(hPixel); bitmap.GetBitmap(&bm); dc.CreateCompatibleDC(pDC); dc.SelectObject(bitmap); pDC->StretchBlt(0,0,rect.Width(), rect.Height(),&dc,0,0, bm.bmWidth, bm.bmHeight, SRCCOPY);
danke schon mal
-
bumbumb2005 schrieb:
Hier zeichne ich das Rechteck
dc.FillSolidRect(q-g,u-z,wh,hw,RGB(255,zahl2,zahl3)); GetDlgItem(IDC_BUTTON11)->SetWindowPos(NULL,q-g,u-z,wh,hw,NULL);
Da machst du stattdessen:
CRect rect (q-g,u-z,wh,hw); dc.FillSolidRect(rect); ScreenToClient(rect); GetDlgItem(IDC_BUTTON11)->MoveWindow(rect, TRUE); // Button wird verschoben
Mit SetWindowPos wars mir zu viel Tipparbeit - geht aber auch.
-
es kommt diese Fehlermeldung
FillSolidRect' : Keine ueberladene Funktion akzeptiert 1 Parameter was kann das sein
-
Leider kommt der Button aber nicht was kann das sein?
-
dann heißt das das diese funktion nicht nur einen parameter haben will sonder mehr oder weniger.
guck doch einfach mal die definition an:
void FillSolidRect( LPCRECT lpRect, COLORREF clr ); void FillSolidRect( int x, int y, int cx, int cy, COLORREF clr );
-
es kommt aber kein button der Rest geht schon