U
Hatte genau den selben Fall, hab in dann mit dem "CButtonSSL" der ebenfalls auf der von CTecS vorgeschalgenen Seite zu finden ist gelöst.
Da ich immer wieder die selben Buttons mit entsprechendem Bild brauche hab ich mir einen Ableitung von CButtonSSL gemacht, die Mehtoden enthälte welche spezielle Buttons setzt z.b. SetOKButton, SetCancelButton, SetInfoButton.. dort werden dann Größe, Text, Bitmap gesetzt.
sieht dann z.b. so aus
void CButtonMDSet1::SetMDButtonCancel()
{
CButtonSSL::SetSize(95,50);
CButtonSSL::SetWindowText("&Cancel ");
SetMDButtonBitmap(IDB_MDSET1_CANCEL,MDSET1_BTNDEFMASK);
CButtonSSL::SetSSLImageAlign(SSL_IMAGE_LEFT | SSL_IMAGE_VCENTER);
CButtonSSL::SetSSLButtonStyle (CButtonSSL::GetSSLButtonStyle () & ~SSL_BS_FLAT);
CButtonSSL::SetSSLTextAlign(SSL_TEXT_RIGHT | SSL_TEXT_VCENTER);
}
Wenn das mal impementiert ist es für jeden Button ein Einzeiler in der OnInit Mehtode des Dialogs um die Buttons im gewünschten Design zu bekommen.
sieht dann z.b. so aus
//Set Button Designes
m_btn_oUp.SetMDButton3dArrowUp();
m_btn_oDown.SetMDButton3dArrowDown();
m_btn_oLeft.SetMDButton3dArrowLeft();
m_btn_oRight.SetMDButton3dArrowRight();
m_btn_oBack.SetMDButton3dArrowBack();
m_btn_oForw.SetMDButton3dArrowForw();
Nachtrag : Die Bitmap Transparenz Farbe (Maske) lässt sich mit SetSSLButtonBitmap definieren, ist hier nur in SetMDButtonBitmap verpackt da eine doppelaufruf von SetSSLButtonBitmap abgefangen wird -> sonst crash.
Noch wichtig ist "Besitzezeichner" vom Button zu deaktivieren -> sonst crash.
gruss
Marcus