Hallo,
folgender Codeausschnitt (wichtig ist die letzte Methode)
Wenn ich das Editierfeld verlasse, dann soll der DataExchanger aufgerufen werden, leider weiß ich nicht was ich als Pointer übergeben muss.
Kann mir da jemand weiterhelfen
Oder gibt es eine andere Möglichkeit die Daten gleich auszulesen vor dem Schließen auszulesen beim Wechsel des Steuerelements?
Grüße Christoph
folgender Codeausschnitt (wichtig ist die letzte Methode)
Code:
// dlg1Dlg.cpp : Implementierungsdatei
//
#include "stdafx.h"
#include "dlg1.h"
#include "dlg1Dlg.h"
#include ".\dlg1dlg.h"
#ifdef _DEBUG
#definenew DEBUG_NEW
#endif
// Cdlg1Dlg Dialogfeld
Cdlg1Dlg::Cdlg1Dlg(CWnd* pParent /*=NULL*/)
: CDialog(Cdlg1Dlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void Cdlg1Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX,IDC_EDIT1,m_sEdit);
AfxMessageBox(m_sEdit);
}
BEGIN_MESSAGE_MAP(Cdlg1Dlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_EN_KILLFOCUS(IDC_EDIT1, OnEnKillfocusEdit1)
END_MESSAGE_MAP()
// Cdlg1Dlg Meldungshandler
BOOL Cdlg1Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Symbol für dieses Dialogfeld festlegen. Wird automatisch erledigt
// wenn das Hauptfenster der Anwendung kein Dialogfeld ist
SetIcon(m_hIcon, TRUE); // Großes Symbol verwenden
SetIcon(m_hIcon, FALSE); // Kleines Symbol verwenden
// TODO: Hier zusätzliche Initialisierung einfügen
return TRUE; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten
}
// Wenn Sie dem Dialogfeld eine Schaltfläche "Minimieren" hinzufügen, benötigen Sie
// den nachstehenden Code, um das Symbol zu zeichnen. Für MFC-Anwendungen, die das
// Dokument/Ansicht-Modell verwenden, wird dies automatisch ausgeführt.
void Cdlg1Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // Gerätekontext zum Zeichnen
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// Symbol in Clientrechteck zentrieren
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Symbol zeichnen
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// Die System ruft diese Funktion auf, um den Cursor abzufragen, der angezeigt wird, während der Benutzer
// das minimierte Fenster mit der Maus zieht.
HCURSOR Cdlg1Dlg::OnQueryDragIcon()
{
returnstatic_cast<HCURSOR>(m_hIcon);
}
void Cdlg1Dlg::OnEnKillfocusEdit1()
{
DoDataExchange(IDD_DLG1_DIALOG);
}
Wenn ich das Editierfeld verlasse, dann soll der DataExchanger aufgerufen werden, leider weiß ich nicht was ich als Pointer übergeben muss.
Kann mir da jemand weiterhelfen
Oder gibt es eine andere Möglichkeit die Daten gleich auszulesen vor dem Schließen auszulesen beim Wechsel des Steuerelements?
Grüße Christoph
Zuletzt bearbeitet: