002
30.08.2004, 11:53 Uhr
~da dings
Gast
|
Unicolor siht in der definition so aus
C++: |
class CUniColorDlg : public CDialog { DECLARE_DYNAMIC(CUniColorDlg)
public: CUniColorDlg(CWnd* pParent, COLORREF bkColor, bool adminMode); // Standardkonstruktor virtual ~CUniColorDlg();
// Dialogfelddaten enum { IDD = IDD_UNICOLORDLG };
protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung
DECLARE_MESSAGE_MAP() private: CBrush m_Brush; CPoint m_pointOnClick_; COLORREF m_BkColor; bool m_AdminMode;
public: virtual BOOL OnInitDialog(); void ChangeBkColor(COLORREF color); afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); };
|
OnCtlColor und OnLButtonDown wird aber nie aufgerufen wenn ich die Ableitung wie oben beschrieben mache. Die cpp von UnicolorDlg siehts so aus
C++: |
IMPLEMENT_DYNAMIC(CUniColorDlg, CDialog) CUniColorDlg::CUniColorDlg(CWnd* pParent, COLORREF bkColor, bool adminMode) : CDialog(CUniColorDlg::IDD, pParent) { m_BkColor = bkColor; m_AdminMode = adminMode; }
CUniColorDlg::~CUniColorDlg() { }
void CUniColorDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); }
BEGIN_MESSAGE_MAP(CUniColorDlg, CDialog) ON_WM_CTLCOLOR() ON_WM_LBUTTONDOWN() END_MESSAGE_MAP()
// CUniColorDlg-Meldungshandler
BOOL CUniColorDlg::OnInitDialog() { CDialog::OnInitDialog();
m_Brush.CreateSolidBrush(m_BkColor); if (m_AdminMode) this->ModifyStyle(WS_POPUP |WS_CAPTION,WS_CHILD | WS_SIZEBOX); else this->ModifyStyle(WS_POPUP |WS_CAPTION,WS_CHILD);
return TRUE; // return TRUE unless you set the focus to a control // AUSNAHME: OCX-Eigenschaftenseite muss FALSE zurückgeben. }
void CUniColorDlg::ChangeBkColor(COLORREF color) { m_BkColor = RGB(255,0,0); m_Brush.Detach(); m_Brush.CreateSolidBrush(m_BkColor); this->Invalidate(); }
HBRUSH CUniColorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Ändern Sie hier alle Attribute für den DC.
// TODO: Gib einen anderen Pinsel zurück, wenn der Standard nicht erwünscht ist. return m_Brush; }
void CUniColorDlg::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Fügen Sie hier Ihren Meldungsbehandlungscode ein, und/oder benutzen Sie den Standard.
CDialog::OnLButtonDown(nFlags, point); }
|
|