005
22.11.2005, 13:09 Uhr
Spacelord
Hoffnungsloser Fall
|
Auf die schnelle was wiederverwendbares:
C++: |
class PathEdit : public CEdit { // Konstruktion public: PathEdit();
// Attribute public:
// Operationen public:
// Überschreibungen // Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen //{{AFX_VIRTUAL(PathEdit) //}}AFX_VIRTUAL
// Implementierung public: bool isValid(); virtual ~PathEdit();
// Generierte Nachrichtenzuordnungsfunktionen protected: bool isValidPath; //{{AFX_MSG(PathEdit) afx_msg void OnChange(); //}}AFX_MSG
DECLARE_MESSAGE_MAP() };
//Implementierung
#include "stdafx.h" #include "Path_Tester.h" #include "PathEdit.h"
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif
///////////////////////////////////////////////////////////////////////////// // PathEdit
PathEdit::PathEdit() { isValidPath=false; }
PathEdit::~PathEdit() { }
BEGIN_MESSAGE_MAP(PathEdit, CEdit) //{{AFX_MSG_MAP(PathEdit) ON_CONTROL_REFLECT(EN_CHANGE, OnChange) //}}AFX_MSG_MAP END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////////////////// // Behandlungsroutinen für Nachrichten PathEdit
void PathEdit::OnChange() { CString temp(""); GetLine(0,temp.GetBuffer(256)); temp.ReleaseBuffer(); WIN32_FIND_DATA fd; HANDLE h = FindFirstFile(temp,&fd); h!=INVALID_HANDLE_VALUE?isValidPath=true:isValidPath=false; CloseHandle(h); }
bool PathEdit::isValid() { return isValidPath; }
|
Und der Passende Dialog:
C++: |
#include "PathEdit.h"
class CPfadDlg : public CDialog { // Konstruktion public: CString getPfad(); CPfadDlg(CWnd* pParent = NULL); // Standardkonstruktor
// Dialogfelddaten //{{AFX_DATA(CPfadDlg) enum { IDD = IDD_DIALOG1 }; PathEdit m_PathEdit; CString m_Pfad; //}}AFX_DATA
// Überschreibungen // Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen //{{AFX_VIRTUAL(CPfadDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung //}}AFX_VIRTUAL
// Implementierung protected:
// Generierte Nachrichtenzuordnungsfunktionen //{{AFX_MSG(CPfadDlg) virtual void OnOK(); //}}AFX_MSG DECLARE_MESSAGE_MAP() };
//Implementierung
#include "stdafx.h" #include "Path_Tester.h" #include "PfadDlg.h"
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif
///////////////////////////////////////////////////////////////////////////// // Dialogfeld CPfadDlg
CPfadDlg::CPfadDlg(CWnd* pParent /*=NULL*/) : CDialog(CPfadDlg::IDD, pParent) { //{{AFX_DATA_INIT(CPfadDlg) m_Pfad = _T(""); //}}AFX_DATA_INIT }
void CPfadDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CPfadDlg) DDX_Control(pDX, IDC_EDIT1, m_PathEdit); DDX_Text(pDX, IDC_EDIT1, m_Pfad); //}}AFX_DATA_MAP }
BEGIN_MESSAGE_MAP(CPfadDlg, CDialog) //{{AFX_MSG_MAP(CPfadDlg) //}}AFX_MSG_MAP END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////////////////// // Behandlungsroutinen für Nachrichten CPfadDlg
CString CPfadDlg::getPfad() { return m_Pfad; }
void CPfadDlg::OnOK() { if(m_PathEdit.isValid()) CDialog::OnOK(); else AfxMessageBox("Ungültige Pfadangabe!"); }
|
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes. |