Avatar billede bakkegaard Nybegynder
24. maj 2004 - 15:35 Der er 3 kommentarer

Baggrundsfarve på MFC dialog box

Jeg vil sætte baggrundsfarven for samtlige dialog bokse i mit MFC projekt. Jeg har søgt på google og er kommet frem til følgende forslag: Overwrite InitInstance og tilføj følgende metode SetDialogBkColor(RGB(255, 0, 0), RGB(0, 255, 0))
Koden der bliver foreslået ser således ud:

BOOL CMyApp::InitInstance()
{
    // lets set red background and green text for our dialogs
    SetDialogBkColor(RGB(255, 0, 0), RGB(0, 255, 0));
}

Hvor skal dette kodestykke placeres for at fungere og hvad er CMyApp helt præcist?
Avatar billede medions Nybegynder
24. maj 2004 - 15:39 #1
CMyApp er egentlig navnet på dit projekt, blot med et C bag ved, dette kaldes for Constructoren...

Hvis du kigger i din nuværende kode så kan du se at der i forvejen står:

BOOL CDITPROJEKTNAVN::InitInstance()
{
    // lets set red background and green text for our dialogs
    SetDialogBkColor(RGB(255, 0, 0), RGB(0, 255, 0));
}

Så derfor skal du kun tilføje:
    SetDialogBkColor(RGB(255, 0, 0), RGB(0, 255, 0));
Til din funktion InitInstance()

//>Rune
Avatar billede jpk Nybegynder
24. maj 2004 - 15:51 #2
Hvilken version af VC++ bruger du?

Funktionen SetDialogBkColor er forældet og den "korrekte" metode til at ændre bagrundsfarven på dialoger og kontroller er ved at håndtere WM_CTLCOLOR message'en.

For MFC apps betyder det at definere ON_WM_CTLCOLOR() i messagemappet for de dialoger du vil ændre baggrundsfarven for og implementere OnCtlColor funktionen.
Avatar billede jpk Nybegynder
24. maj 2004 - 15:54 #3
medions >> CMyApp i ovenstående eksempel er navnet på den klasse der er nedarvet fra CWinApp, altså ikke en constructor og heller ikke navnet på projektet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester