Ratlos
-
Hallo ich wollte mal was fargen ich habe ein spiel und logischer weise sind da datein.
So und in der Spiel.cpp steht das drin#include "stdafx.h" #include "spiel.h" #include "spielDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endifBOOL CSpielApp::InitInstance() { AfxEnableControlContainer(); SetDialogBkColor(RGB(0,0,0), RGB(255,255,255));//Hierum geht es mir#ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif CSpielDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse == IDOK) { } else if (nResponse == IDCANCEL) { } // Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application's message pump. return FALSE; } ///////////////////////////////////////////////////////////////////////////// // CSpielApp BEGIN_MESSAGE_MAP(CSpielApp, CWinApp) //{{AFX_MSG_MAP(CSpielApp) //}}AFX_MSG ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSpielApp construction CSpielApp::CSpielApp() { } ///////////////////////////////////////////////////////////////////////////// // The one and only CSpielApp object CSpielApp theApp; ///////////////////////////////////////////////////////////////////////////// // CSpielApp initialization
so und wie man sieht legt man oben ja die Farbe des Dialoges Fest SetDialogBkColor(RGB(0,0,0), RGB(255,255,255));
So und ich will das des Benutzer des Programms diese Farbe vom Dialog im Programm ändern kann.
Aber das meiste des Programms spielt sich ja in SpielDlg.cpp ab und da ist auch mein menüvoid CSpielDlg::OnExtrasDialogFarbeBlau() { // Hier soll die Farbe des Dialoges dann z.B Blau werden //z.B so SetDialogBkColor(RGB(0,0,200), RGB(255,255,255)); }
So wie kann ich das jetzt anstellen?
Ich hatte schon probiert in der Funktion des Menüs void CSpielDlg::OnExtrasDialogFarbeBlau()
eine Variable z.B auf zwei zu setzten und dann in der Spiel.cpp abzufragen aber das geht alles nicht
-
Das kannst du denk ich mal nur über OnCtlColor machen.
SetDialogBkColor kannst du nur aus der Klasse selber aufrufen da diese Methode als Protected deklariert ist. Ob es überhaupt möglich ist mit dieser Methode die Hintergrundfarbe zu ändern während der Dialog schon erstellt ist - weiss ich nicht (Ich denke eher nicht)
Aus der MSDN:
This method is called from within the InitInstance method to set the default background and text color for dialog boxes and message boxes within your application.Also musst du es mit OnCtlColor machen. In der FAQ gabs glaub ich ist was dazu (Oder schau einfach in die MSDN rein)
[ Dieser Beitrag wurde am 27.09.2002 um 10:42 Uhr von Nemesyzz editiert. ]
-
Naja gut dann muss ich es eben anders versuchen danke.
ich meine ich hatte es ja schonmal so das ich das mit dem SetDialogBkColor(RGB(0,0,0), RGB(255,255,255));ändern konnte aber die Farbe war dann trotzdem noch schwarz weil er mir das dialog Fenster ja nicht neu aufgebaut hat.
weißt du zufällig wie ich das hinbekommen kann?
-
also OnCtlColor kennt der gar nicht