Edit_Feld in ToolBar füllen (aus Doc !!!) Jetzt MIT Code ;)



  • Hi zusammen :xmas1: ,

    ich habe ein SDI Projekt in dessen Toolbar sich eine Edit Box befindet.
    Um dies zu bewerkstelligen habe ich eine neue Klasse angelegt "cNewToolBar".
    Es befindet sich noch ein Butteon den ich zuvor in mit dem Assistenten erstellt habe in der Toolbar ! Bis hierhet funktioniert alles bestens !

    Einen Wert in die EditBox aus der CNewToolBar.cpp zu schreiben klappt mit
    SetWindowText() auch !
    Nun möchte ich per Druck auf diesen Knopf (das Ereignis(Knopfdruck) wird im Doc gehandelt) die Edit Box dynamisch füllen (mit Werten die im Doc berechnet werden), aber das klappt einfach nicht 😢 !

    Die Dateien heißen cNewToolbar.cpp, CNewToolBar.h und Hauptprogramm.doc !

    Ich habe keinen Code geschickt weil das vllt. sonst zu groß wird aber wenn gewünscht kein Problem 😉

    Könnt Ihr mir sagen was ich wie und wo machen muß ums zum laufen zu bringen ?

    Vielen Dank für eure Mühe
    Gruß :xmas2:
    ShadowEater



  • Hi,
    ist die Antwort so kompliziert oder die Frage so doof oder hb ich mich unverständlich ausgedrückt 😉 ???

    Gruß
    ShadowEater



  • Hi ;+,
    +-

    wegen der wenigen Antworten (ich denke es liegt am fehlenden Code) habe ich mal Code hinzugefügt !-+
    ++-
    also das ist der Code Im DOC.cpp:

    void CEditCtrlDoc::OnUpdateFill(CCmdUI* pCmdUI) 
    {
    	pCmdUI->Enable (m_bFill);	// Aktiviert Button zum füllen der EditBox	
    }
    

    Code der DOC.h :

    Ich habe nur die Bool Variable im Public Bereich eingefügt :

    BOOL		m_bFill;
    

    Code der TlBar.cpp (neue Klasse für das Edit Control in der ToolBar):

    // TlBar.cpp: Implementierungsdatei
    //
    
    #include "stdafx.h"
    #include "EditCtrl.h"
    #include "TlBar.h"
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
    
    #define  EDITLEN 80 
    #define  EDITPOS 3 
    
    /////////////////////////////////////////////////////////////////////////////
    // CTlBar
    
    CTlBar::CTlBar()
    {
    }
    
    CTlBar::~CTlBar()
    {
    }
    
    BEGIN_MESSAGE_MAP(CTlBar, CToolBar)
    	//{{AFX_MSG_MAP(CTlBar)
    		// HINWEIS - Der Klassen-Assistent fügt hier Zuordnungsmakros ein und entfernt diese.
    	//}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    
    /////////////////////////////////////////////////////////////////////////////
    // Behandlungsroutinen für Nachrichten CTlBar 
    
    BOOL CTlBar::LoadToolBarEx (UINT id)
    {
    	bool bReturn;
    	bReturn = CTlBar::LoadToolBar (id);
    
    	int iPosition = CommandToIndex (ID_nEDIT);
    
    	SetButtonInfo (iPosition,ID_nEDIT,TBBS_SEPARATOR,EDITLEN);
    
    	CRect rect;
    	GetItemRect (iPosition, &rect);
    	rect.bottom = 20;
    
    	DWORD dwStyle = WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_AUTOHSCROLL;
    	m_Ctrl_EDIT.CreateEx(WS_EX_CLIENTEDGE,_T("EDIT"),NULL, dwStyle, rect, this, ID_nEDIT);
    	return bReturn;
    }
    

    Code in TlBar.h :

    #if !defined(AFX_TLBAR_H__1741EA96_4BB2_4E63_8A8A_F21C15ACF84F__INCLUDED_)
    #define AFX_TLBAR_H__1741EA96_4BB2_4E63_8A8A_F21C15ACF84F__INCLUDED_
    
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
    // TlBar.h : Header-Datei
    //
    
    /////////////////////////////////////////////////////////////////////////////
    // Fenster CTlBar 
    
    class CTlBar : public CToolBar
    {
    // Konstruktion
    public:
    	CTlBar();
    
    //*********************************************************************************************************************** 
    	BOOL LoadToolBarEx (UINT id);
    //*********************************************************************************************************************** 
    // Attribute
    public:
    
    // Operationen
    public:
    
    // Überschreibungen
    	// Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen
    	//{{AFX_VIRTUAL(CTlBar)
    	//}}AFX_VIRTUAL
    
    // Implementierung
    public:
    	virtual ~CTlBar();
    
    	// Generierte Nachrichtenzuordnungsfunktionen
    protected:
    	//{{AFX_MSG(CTlBar)
    		// HINWEIS - Der Klassen-Assistent fügt hier Member-Funktionen ein und entfernt diese.
    	//}}AFX_MSG
    
    	DECLARE_MESSAGE_MAP()
    //*********************************************************************************************************************** 
    private:
    	CEdit m_Ctrl_EDIT;
    //*********************************************************************************************************************** 
    };
    
    /////////////////////////////////////////////////////////////////////////////
    
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein.
    
    #endif // AFX_TLBAR_H__1741EA96_4BB2_4E63_8A8A_F21C15ACF84F__INCLUDED_
    

    Ich möchte eigentlich nichts weiter als dass bei Druck auf den Fill Button (grüner Punkt) die TextBox mit einem Text gefüllt wird !!!

    könnt Ihr mir da weiterhelfen ???

    Vielen Dank für eure Hilfe !
    Gruß
    ShadowEater



  • Hi,

    wenn ich in der TlBar mit SetWindowText probiere klappts :

    BOOL CTlBar::LoadToolBarEx (UINT id)
    {
    	bool bReturn;
    	bReturn = CTlBar::LoadToolBar (id);
    
    	int iPosition = CommandToIndex (ID_nEDIT);
    
    	SetButtonInfo (iPosition,ID_nEDIT,TBBS_SEPARATOR,EDITLEN);
    
    	CRect rect;
    	GetItemRect (iPosition, &rect);
    	rect.bottom = 20;
    
    	DWORD dwStyle = WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_AUTOHSCROLL;
    	m_Ctrl_EDIT.CreateEx(WS_EX_CLIENTEDGE,_T("EDIT"),NULL, dwStyle, rect, this, ID_nEDIT);
    
     	m_Ctrl_EDIT.SetWindowText ("Blubber !!!"); //<---------
    
    // 	UINT max = 5;
    // 	m_Ctrl_EDIT.SetLimitText (max);
    	return bReturn;
    }
    

    aber mit dem Butten Fill hat das nichts zu tun ;(( !

    Gruß
    ShadowEater



  • Hi,
    Kennt denn niemand das Problem oder hat ein Code Snippet oder eine Erläarung bzw Lösung !? 😕 😕 😕

    Gruß,
    am Rande des Nerverzusammenbruchs 😉
    ShadowEater


Anmelden zum Antworten