004
17.11.2004, 13:13 Uhr
~Prof.Gambler
Gast
|
Ich hab was rausgefunden:
Erstelle ich den neuen Dialog über rechtsklick-> Rssource hinzufügen und wähle dann eine Ressource aus, endet das Spiel wie oben beschrieben.
Erstelle ich den Dialog über Rechtsklick auf den ordner für die Dialogressourcen und dann Dialog einfügen funktioniert alles wie es sollte.
Was auch immer der Unterschied ist, für den Moment reicht mir der Workarraound. Der Quelltext der zueghörigen header und CPP Dateien weist natürlich Unterschiede auf, aber ich bin nicht so fit in dieser Window-oberflächengeshcichte, als das ich das analysieren könnte.
Meine Neugier ist jetzt nurnoch von akademischem Interesse, falls es aber noch jemanden ernsthaft interessiert poste ich unten die Quellcodes
Dabei ist settings, die nicht richtig funktionierende und test die richtig funktionierende Version! Die in den Listings erscheinende Lara.h ist der Header des Hauptfensters.
Auf jeden Fall mal danke für den Hilfeversuch, ich mahc das ganze jetzt über den "Workarround" (ohne wirklich zu vertsehen wieso)!
settings.h
C++: |
#pragma once
// Settings-Dialogfeld
class Settings : public CDialog { DECLARE_DYNAMIC(Settings)
public: Settings(CWnd* pParent = NULL); // Standardkonstruktor virtual ~Settings();
// Dialogfelddaten enum { IDD = IDD_Settings_Dialog };
protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung
DECLARE_MESSAGE_MAP() public: CString m_load_correction_file1; };
|
settings.cpp
C++: |
// Settings.cpp : Implementierungsdatei //
#include "stdafx.h" #include "Lara.h" #include "Settings.h"
// Settings-Dialogfeld
IMPLEMENT_DYNAMIC(Settings, CDialog) Settings::Settings(CWnd* pParent /*=NULL*/) : CDialog(Settings::IDD, pParent) , m_load_correction_file1(_T("")) { }
Settings::~Settings() { }
void Settings::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_Durchsuchen_load_correction_file1, m_load_correction_file1); }
BEGIN_MESSAGE_MAP(Settings, CDialog)
END_MESSAGE_MAP()
// Settings-Meldungshandler
|
test.h
C++: |
#pragma once
// cTest-Dialogfeld
class cTest : public CDHtmlDialog { DECLARE_DYNCREATE(cTest)
public: cTest(CWnd* pParent = NULL); // Standardkonstruktor virtual ~cTest(); // Überschreibungen HRESULT OnButtonOK(IHTMLElement *pElement); HRESULT OnButtonCancel(IHTMLElement *pElement);
// Dialogfelddaten enum { IDD = IDD_DIALOG1, IDH = IDR_HTML_TEST };
protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP() DECLARE_DHTML_EVENT_MAP() };
|
Test.cpp
C++: |
// Test.cpp : Implementierungsdatei //
#include "stdafx.h" #include "Lara.h" #include "Test.h"
// cTest-Dialogfeld
IMPLEMENT_DYNCREATE(cTest, CDHtmlDialog)
cTest::cTest(CWnd* pParent /*=NULL*/) : CDHtmlDialog(cTest::IDD, cTest::IDH, pParent) { }
cTest::~cTest() { }
void cTest::DoDataExchange(CDataExchange* pDX) { CDHtmlDialog::DoDataExchange(pDX); }
BOOL cTest::OnInitDialog() { CDHtmlDialog::OnInitDialog(); return TRUE; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten }
BEGIN_MESSAGE_MAP(cTest, CDHtmlDialog) END_MESSAGE_MAP()
BEGIN_DHTML_EVENT_MAP(cTest) DHTML_EVENT_ONCLICK(_T("ButtonOK"), OnButtonOK) DHTML_EVENT_ONCLICK(_T("ButtonCancel"), OnButtonCancel) END_DHTML_EVENT_MAP()
// cTest-Meldungshandler
HRESULT cTest::OnButtonOK(IHTMLElement* /*pElement*/) { OnOK(); return S_OK; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten }
HRESULT cTest::OnButtonCancel(IHTMLElement* /*pElement*/) { OnCancel(); return S_OK; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten }
|
|