文書番号: 401872
最終更新日: 2003/11/12
例: m_ofn.lpTemplateName = MAKEINTRESOURCE(FILEOPENORD); m_ofn.hInstance = AfxGetInstanceHandle(); m_ofn.Flags |= OFN_ENABLETEMPLATE;
// customdl.h : header file // #include "dlgs.h" //Header file for common dialog resource ///////////////////////////////////////////////////////////////////////////// // CCustomDlg dialog class CCustomDlg : public CFileDialog //Create class from CFileDialog { // Construction public: CCustomDlg(BOOL dlgType, COLORREF bkColor,COLORREF txtColor, LPCSTR lpszDefExt = NULL,LPCSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCSTR lpszFilter = NULL, CWnd* pParentWnd = NULL); // standard constructor // Dialog Data //{{AFX_DATA(CCustomDlg) enum { IDD = FILEOPENORD }; //Customizing dialog box template ID // NOTE: the ClassWizard will add data members here //}}AFX_DATA CBrush m_pBkBrush; //Brush object COLORREF textColor,backColor; // Overrides // ClassWizard generate virtual function overrides //{{AFX_VIRTUAL(CCustomDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: // Generated message map functions //{{AFX_MSG(CCustomDlg) afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; // customdl.cpp : implementation file // #include "stdafx.h" #include "customdl.h" #ifdef _DEBUG #undef THIS_FILE static char BASED_CODE THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CCustomDlg dialog CCustomDlg::CCustomDlg(BOOL dlgType, COLORREF bkColor, COLORREF txtColor, LPCSTR lpszDefExt,LPCSTR lpszFileName, DWORD dwFlags, LPCSTR lpszFilter, CWnd* pParentWnd) : CFileDialog(dlgType,lpszDefExt,lpszFileName,dwFlags,lpszFilter,pParentWnd) ,m_pBkBrush(bkColor) // Specifiy background brush { textColor = txtColor; backColor = bkColor; //{{AFX_DATA_INIT(CCustomDlg) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } void CCustomDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CCustomDlg) // NOTE: the ClassWizard will add DDX and DDV calls here //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CCustomDlg, CFileDialog) //{{AFX_MSG_MAP(CCustomDlg) ON_WM_CTLCOLOR() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CCustomDlg message handlers HBRUSH CCustomDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { switch (nCtlColor){ case CTLCOLOR_STATIC: pDC->SetTextColor(textColor); pDC->SetBkColor(backColor); //Through case CTLCOLOR_DLG: return (HBRUSH)(m_pBkBrush.GetSafeHandle()); //return brush which was specified as background } return CDialog::OnCtlColor(pDC, pWnd, nCtlColor); } // Calling Customized FileOpen Dialog function // void CMyWnd::OpenCustomizedDialog() { CCustomDlg dlg(TRUE,RGB(192,192,192),RGB(0,0,0)); dlg.m_ofn.lpTemplateName = MAKEINTRESOURCE(FILEOPENORD); dlg.m_ofn.hInstance = AfxGetInstanceHandle(); dlg.m_ofn.Flags |= OFN_ENABLETEMPLATE; if(dlg.DoModal() == IDCANCEL) return; //TO DO: }
Keywords: KBHOWTO VC10 KB401872
Technology: kbAudDeveloper kbVCsearch