Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » CFileDialog

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
18.05.2004, 17:44 Uhr
~mike
Gast


Hi!
Ich bin einwenig weitergekommen:
Klick mal im Arbeitsberich mit der rechten Maustaste auf das oberste Item. "Neu Klasse". Dort gib CMyFileDialog ein, wähle eine MFC Klasse und als BasisKlasse CFileDialog.
Füg folgendes in die cpp

C++:
BOOL CMyFileDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
    LPOFNOTIFY of = (LPOFNOTIFY)lParam;
    if(of->hdr.code == CDN_TYPECHANGE){
        CWnd *pWnd = GetParent()->GetDlgItem(0x480);
        if(::IsWindow(pWnd->GetSafeHwnd()))
            pWnd->SetWindowText("HALLO");
    }  

    return CDialog::OnNotify(wParam, lParam, pResult);
}


und folgendes in die h

C++:
virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);



mfg

Zitat:
edit: sollte nun funtzen
Quelle: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cfiledialog.3a3a.ontypechange.asp


Dieser Post wurde am 18.05.2004 um 18:04 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
18.05.2004, 21:38 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Bisher bin ich soweit...
den Klassenassi zu benutzen war ne gute Idee... vielen Dank an mike



C++:
#if !defined(AFX_EXCELTXTFILEDIALOG_H__37E14FAF_129B_4F34_80E4_870780EC9CFF__INCLUDED_)
#define AFX_EXCELTXTFILEDIALOG_H__37E14FAF_129B_4F34_80E4_870780EC9CFF__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ExcelTxtFileDialog.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CExcelTxtFileDialog dialog

class CExcelTxtFileDialog : public CFileDialog
{
    DECLARE_DYNAMIC(CExcelTxtFileDialog)

public:
    CExcelTxtFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL);

protected:
    //{{AFX_MSG(CExcelTxtFileDialog)
        afx_msg void OnTypeChange();
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_EXCELTXTFILEDIALOG_H__37E14FAF_129B_4F34_80E4_870780EC9CFF__INCLUDED_)





C++:
#include "stdafx.h"
#include "blabla.h"
#include "ExcelTxtFileDialog.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CExcelTxtFileDialog

IMPLEMENT_DYNAMIC(CExcelTxtFileDialog, CFileDialog)

CExcelTxtFileDialog::CExcelTxtFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName,DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd):CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd){}


BEGIN_MESSAGE_MAP(CExcelTxtFileDialog, CFileDialog)
    //{{AFX_MSG_MAP(CExcelTxtFileDialog)
        // NOTE - the ClassWizard will add and remove mapping macros here.
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()



void CExcelTxtFileDialog::OnTypeChange(){
    
             //kann man hier nicht irgendwie anders drauf zugreifen..einfach nur hex480 ist ein wenig unbefriedigend
     GetParent()->GetDlgItem(0x480)->SetWindowText("Liste");
    CFileDialog::OnTypeChange();
    
}




so das bringt mich abschliessend zu folgender Frage... Wie find ich heraus welchen Typ der user ausgewählt hat?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
18.05.2004, 22:15 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ok ich hab noch folgednes herausgefunden...

die klasse hat eine eigene funktion die man wohl besser verwenden sollte als sich selber was zu basteln...

also

C++:
SetControlText(0x480,"Liste");


statt

C++:
GetParent()->GetDlgItem(0x480)->SetWindowText("Liste");



offen bleibt die frage 0x480... toll wenn man weiss wie die sch**ss ressourcenID heisst... was mach man denn wenn mans nicht weiss.. kann man da auch irgendwie drauf kommen?

herausfinden welcher filter gerade ausgewählt ist kann man mit dem member
m_ofn

C++:
m_ofn.nFilterIndex //hier steht das wievielte ausgeählt ist...


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
19.05.2004, 09:42 Uhr
~mike
Gast



Zitat:
Windalf postete
offen bleibt die frage 0x480... toll wenn man weiss wie die sch**ss ressourcenID heisst... was mach man denn wenn mans nicht weiss.. kann man da auch irgendwie drauf kommen?

herausfinden welcher filter gerade ausgewählt ist kann man mit dem member
m_ofn



Einfach in Spy++ nach schaun
Die ComboBox hat 0x481

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/vcrefcfiledialogsetcontroltext.asp
UINT iCurSel gibt das zurück - wechsel die OnNotify einfach mit der aus, dann sollte es gehen.

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
19.05.2004, 10:40 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ändern werd ich jetzt nix mehr weil das schon so funzt wie ich will... vielen dank noch mal dein post010 hat mir sehr geholfen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
19.05.2004, 11:04 Uhr
mike
Pinguinhüpfer
(Operator)


@Winni: Ja kannst du prinzipiell lassen. SetControlText ist auch eine Notify Funktion, welcher aber das Item mitübergibt.
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: