<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[konsolenprogramm und dialog ... einmal gehts, einmal net]]></title><description><![CDATA[<p>hallo,</p>
<p>ich habe eine dll geschrieben. die habe ich selber mit den mfc-libraries ergänzt (ohne assistent), um dialoge und messageboxes aufpoppen zu können.<br />
meine dll wird von einem tool benutzt, das sowohl als windowsapplikation, als auch als konsolenapplikation verwendet wird.</p>
<p>mein dialog wird in der windowsapplikation einwandfrei aufgepoppt. jedoch bleibt der prozess an der stelle des aufpoppens in der<br />
konsolenapplikation hängen (vermute mal, da er kein mainwindow findet).<br />
wie kann ich denn in der konsolenappliaktion den dialog aufrufen?<br />
kann ich eine fakewindow erzeugen oder so?</p>
<p>Kurioses:<br />
meine dll hat 2 modes.<br />
in einem rufe ich mit doModal() einen filedialog vor meinem dialog auf.<br />
dieser filedialog funktioniert auch in der konsolenapplikation. anschließend würde mein dialog aufpoppen. und siehe da .. es poppt auch auf.<br />
somit habe ich festgestellt, dass auch wenn ich vorher nur eine afxmessagebox aufrufe, mein dialog auf einmal funktioniert.<br />
in dem 2ten mode benötige ich kein filedialog. und dann bleibt der prozess hängen. also was macht der filedialog und die afxmessagebox, dass es danach geht?<br />
fehlt was in meiner klasse? aber was?</p>
<p>also nochmal...<br />
wenn ich in der konsolenapplikation nur meinen dialog aufpoppen will, dann geht es nicht.<br />
wenn ich vorher cfiledialog oder afxmessagebox aufrufe, dann geht mein dialog danach auch.</p>
<p>hier meine dialog-klasse. habe ein wenig raus, da es meine diplomarbeit ist ... aber nur die combobox-sachen und so ... also nix dialogrelevantes.</p>
<pre><code class="language-cpp">#pragma once
#include &quot;afxwin.h&quot;
#include &quot;resource.h&quot;

class CMyDlg : public CDialog
{
	DECLARE_DYNAMIC(CMyDlg)

public:
	CMyDlg(CWnd* pParent = NULL);
	virtual ~CMyDlg();

// Dialog Data
	enum { IDD = IDD_MYDLG };

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  virtual BOOL OnInitDialog();

	DECLARE_MESSAGE_MAP()
public:
  afx_msg void OnBnClickedOk();
  afx_msg void OnCbnSelchangeCombo();
  CComboBox m_ComboCtrl;
};
</code></pre>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &quot;MyDlg.h&quot;
#include &lt;string&gt;

IMPLEMENT_DYNAMIC(CMyDlg, CDialog)

CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CMyDlg::IDD, pParent)
{
}

CMyDlg::~CMyDlg()
{
}

void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
  CDialog::DoDataExchange(pDX);
  DDX_Control(pDX, IDC_COMBO, m_ComboCtrl);
}

BOOL CMyDlg::OnInitDialog()
{
  CDialog::OnInitDialog();
  return TRUE;
}

BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
  ON_BN_CLICKED(IDOK, &amp;CMyDlg::OnBnClickedOk)
  ON_CBN_SELCHANGE(IDC_COMBO, &amp;CMyDlg::OnCbnSelchangeCombo)
END_MESSAGE_MAP()

// CMyDlg message handlers

void CMyDlg::OnBnClickedOk()
{
  // TODO: Add your control notification handler code here
  OnOK();
}
</code></pre>
<p>danke schonmal<br />
grüße<br />
steff</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/169361/konsolenprogramm-und-dialog-einmal-gehts-einmal-net</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 13:02:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169361.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Jan 2007 16:21:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to konsolenprogramm und dialog ... einmal gehts, einmal net on Thu, 04 Jan 2007 16:21:08 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>ich habe eine dll geschrieben. die habe ich selber mit den mfc-libraries ergänzt (ohne assistent), um dialoge und messageboxes aufpoppen zu können.<br />
meine dll wird von einem tool benutzt, das sowohl als windowsapplikation, als auch als konsolenapplikation verwendet wird.</p>
<p>mein dialog wird in der windowsapplikation einwandfrei aufgepoppt. jedoch bleibt der prozess an der stelle des aufpoppens in der<br />
konsolenapplikation hängen (vermute mal, da er kein mainwindow findet).<br />
wie kann ich denn in der konsolenappliaktion den dialog aufrufen?<br />
kann ich eine fakewindow erzeugen oder so?</p>
<p>Kurioses:<br />
meine dll hat 2 modes.<br />
in einem rufe ich mit doModal() einen filedialog vor meinem dialog auf.<br />
dieser filedialog funktioniert auch in der konsolenapplikation. anschließend würde mein dialog aufpoppen. und siehe da .. es poppt auch auf.<br />
somit habe ich festgestellt, dass auch wenn ich vorher nur eine afxmessagebox aufrufe, mein dialog auf einmal funktioniert.<br />
in dem 2ten mode benötige ich kein filedialog. und dann bleibt der prozess hängen. also was macht der filedialog und die afxmessagebox, dass es danach geht?<br />
fehlt was in meiner klasse? aber was?</p>
<p>also nochmal...<br />
wenn ich in der konsolenapplikation nur meinen dialog aufpoppen will, dann geht es nicht.<br />
wenn ich vorher cfiledialog oder afxmessagebox aufrufe, dann geht mein dialog danach auch.</p>
<p>hier meine dialog-klasse. habe ein wenig raus, da es meine diplomarbeit ist ... aber nur die combobox-sachen und so ... also nix dialogrelevantes.</p>
<pre><code class="language-cpp">#pragma once
#include &quot;afxwin.h&quot;
#include &quot;resource.h&quot;

class CMyDlg : public CDialog
{
	DECLARE_DYNAMIC(CMyDlg)

public:
	CMyDlg(CWnd* pParent = NULL);
	virtual ~CMyDlg();

// Dialog Data
	enum { IDD = IDD_MYDLG };

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  virtual BOOL OnInitDialog();

	DECLARE_MESSAGE_MAP()
public:
  afx_msg void OnBnClickedOk();
  afx_msg void OnCbnSelchangeCombo();
  CComboBox m_ComboCtrl;
};
</code></pre>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &quot;MyDlg.h&quot;
#include &lt;string&gt;

IMPLEMENT_DYNAMIC(CMyDlg, CDialog)

CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CMyDlg::IDD, pParent)
{
}

CMyDlg::~CMyDlg()
{
}

void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
  CDialog::DoDataExchange(pDX);
  DDX_Control(pDX, IDC_COMBO, m_ComboCtrl);
}

BOOL CMyDlg::OnInitDialog()
{
  CDialog::OnInitDialog();
  return TRUE;
}

BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
  ON_BN_CLICKED(IDOK, &amp;CMyDlg::OnBnClickedOk)
  ON_CBN_SELCHANGE(IDC_COMBO, &amp;CMyDlg::OnCbnSelchangeCombo)
END_MESSAGE_MAP()

// CMyDlg message handlers

void CMyDlg::OnBnClickedOk()
{
  // TODO: Add your control notification handler code here
  OnOK();
}
</code></pre>
<p>danke schonmal<br />
grüße<br />
steff</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202888</guid><dc:creator><![CDATA[pitrie]]></dc:creator><pubDate>Thu, 04 Jan 2007 16:21:08 GMT</pubDate></item></channel></rss>