Hallo,
ich habe eine Dialogbasierte Anwendung erstellt die auch super funktioniert mit einer kleinen einschränkung der Hintergrundfarbe
sobald ich eine andere Hintergrundfarbe einfüge hängt sich meine Applikation nach einer weile auf. Es funktioniert zwar noch, allerdings verschwinden die Farben einzelner Steuerelemente. Ich denke es ist besser wenn Ihr euch mal die Screenshots anschaut die sagen mehr aus.
kurz zum code :
Für die Hintergrundfarbe verwende ich die nachfolgenden Funktion:
1. Diese Funktion malt mir den Hintergrund an und es verursacht keinerlei Probleme ! ABER die Hintergrundfarben der Texte bleiben GRAU und das sieht nicht schön aus .
deshalb habe ich noch eine weitere Funktion eingefügt die mir den Hintergrund von Statischen Texten usw. anmalt:
2.
so und das verursacht den genanten bzw.sichtbaren(Screenshot) Effekt.
ich möchte noch erwähnen das 2 Timer im Hintergrund laufen ob das die Ursache ist weis ich allerdings nicht .
ach und nochwas wenn ich schon beim Timer bin
im INFO Fenster ist ein leichtes Flakern sichtbar was man nur beim genauen hinschauen bemerkt und beim ziehen des Dialog Fensters ruckelt es. Das ganze passiert wenn der Timer Aktiv ist wohlgemerkt.
Ich habe im Forum lange gesucht aber nicht wirklich was gefunden was mein Problem behebt.
Vielen Dank für eure Antworten im vorraus
ich habe eine Dialogbasierte Anwendung erstellt die auch super funktioniert mit einer kleinen einschränkung der Hintergrundfarbe
sobald ich eine andere Hintergrundfarbe einfüge hängt sich meine Applikation nach einer weile auf. Es funktioniert zwar noch, allerdings verschwinden die Farben einzelner Steuerelemente. Ich denke es ist besser wenn Ihr euch mal die Screenshots anschaut die sagen mehr aus.
kurz zum code :
Für die Hintergrundfarbe verwende ich die nachfolgenden Funktion:
1. Diese Funktion malt mir den Hintergrund an und es verursacht keinerlei Probleme ! ABER die Hintergrundfarben der Texte bleiben GRAU und das sieht nicht schön aus .
Code:
BOOL CddcontrolDlg::OnEraseBkgnd(CDC* pDC) {
CRect rc;
CWnd *pWnd;
GetClientRect(&rc);
pDC->FillSolidRect(0,0,rc.Width(),rc.Height(),RGB(128,184,233)); // roter Hintergrund!!
return 1;
}
deshalb habe ich noch eine weitere Funktion eingefügt die mir den Hintergrund von Statischen Texten usw. anmalt:
2.
Code:
HBRUSH CddcontrolDlg::OnCtlColor(CDC*pDC,CWnd*pWnd,UINT nCtlColor)
{
// Hintergrundfarbe festlegen
HBRUSH hBGBrush = CreateSolidBrush(RGB(128,184,223));//
HBRUSH hBGEdit = CreateSolidBrush(RGB(255,255,255));
//
// // Hintergrundfarbe einzelner Elemente ändern
//
if(pWnd->GetDlgCtrlID()==IDC_LIST_SM)
{
pDC->SetBkMode(TRANSPARENT);
//
return hBGEdit;
//
}
//
if(pWnd->GetDlgCtrlID()==IDC_LIST_IP)
{
pDC->SetBkMode(TRANSPARENT);
//
return hBGEdit;
//
}
if(pWnd->GetDlgCtrlID()==IDC_LIST_MAC)
{
pDC->SetBkMode(TRANSPARENT);
//
return hBGEdit;
//
}
//
if(pWnd->GetDlgCtrlID()==IDC_LIST_GW)
{
pDC->SetBkMode(TRANSPARENT);
//
return hBGEdit;
//
}
//
if(pWnd->GetDlgCtrlID()==IDC_LIST_SEND)
{
pDC->SetBkMode(TRANSPARENT);
//
return hBGEdit;
//
}
//
if(pWnd->GetDlgCtrlID()==IDC_EDIT1)
{
pDC->SetBkMode(TRANSPARENT);
//
return hBGEdit;
//
}
//
if(pWnd->GetDlgCtrlID()==IDC_COMBO1)
{
pDC->SetBkMode(TRANSPARENT);
//
return hBGEdit ;
//
}
if(pWnd->GetDlgCtrlID()==IDC_STATIC_INFO)pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_STATIC)pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_NONE)pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_DATUM)pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_timer1s)pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_0 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_1 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_2 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_3 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_4 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_5 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_6 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_7 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_8 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_9 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_10 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_11 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_12 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_13 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_14 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_S_BIT_15 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_OUT_0 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_OUT_1 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_OUT_2 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_OUT_3 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_OUT_4 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_OUT_5 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_OUT_6 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_OUT_7 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_IN_0 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_IN_1 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_IN_2 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_IN_3 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_IN_4 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_IN_5 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_IN_6 )pDC->SetBkMode(TRANSPARENT);
if(pWnd->GetDlgCtrlID()==IDC_SPS_IN_7 )pDC->SetBkMode(TRANSPARENT);
return hBGBrush;
}
so und das verursacht den genanten bzw.sichtbaren(Screenshot) Effekt.
ich möchte noch erwähnen das 2 Timer im Hintergrund laufen ob das die Ursache ist weis ich allerdings nicht .
ach und nochwas wenn ich schon beim Timer bin

Ich habe im Forum lange gesucht aber nicht wirklich was gefunden was mein Problem behebt.
Vielen Dank für eure Antworten im vorraus