<?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[ESC schliesst Dialog]]></title><description><![CDATA[<p>Hallo,<br />
ich bin dabei ein Dialogfeldbasiertes Programm zu machen und möchte dass man dieses programm nicht über Esc schliesen kann<br />
wie mach ich das?</p>
<p>danke sehr</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/46951/esc-schliesst-dialog</link><generator>RSS for Node</generator><lastBuildDate>Mon, 01 Jun 2026 21:29:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/46951.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Aug 2003 07:07:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ESC schliesst Dialog on Mon, 25 Aug 2003 07:07:24 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich bin dabei ein Dialogfeldbasiertes Programm zu machen und möchte dass man dieses programm nicht über Esc schliesen kann<br />
wie mach ich das?</p>
<p>danke sehr</p>
]]></description><link>https://www.c-plusplus.net/forum/post/339804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/339804</guid><dc:creator><![CDATA[maximo]]></dc:creator><pubDate>Mon, 25 Aug 2003 07:07:24 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Mon, 25 Aug 2003 07:13:23 GMT]]></title><description><![CDATA[<p>Du könntest PreTranslateMessage() überschreiben, dort die ESCAPE-Nachricht abfangen und was eigenes (oder nichts) bei ESCAPE ausführen.</p>
<p>Andrea</p>
]]></description><link>https://www.c-plusplus.net/forum/post/339807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/339807</guid><dc:creator><![CDATA[Andrea_]]></dc:creator><pubDate>Mon, 25 Aug 2003 07:13:23 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Mon, 25 Aug 2003 08:31:32 GMT]]></title><description><![CDATA[<p>Einfach die Funktion OnCancel überschreiben und dabei nichts tun. Auf jeden Fall nicht CDialog::OnCancel aufrufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/339858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/339858</guid><dc:creator><![CDATA[DJohn]]></dc:creator><pubDate>Mon, 25 Aug 2003 08:31:32 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Mon, 25 Aug 2003 08:43:55 GMT]]></title><description><![CDATA[<p>und wo genau?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/339874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/339874</guid><dc:creator><![CDATA[maximo]]></dc:creator><pubDate>Mon, 25 Aug 2003 08:43:55 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Mon, 25 Aug 2003 15:07:43 GMT]]></title><description><![CDATA[<p>In der Dialog-Klasse, die den Dialog beschreibt, der nicht mit ESC beendet werden soll. Wenn Du den Abbrechen-Button noch nicht entfernt hast, kannst Du die OnCancel-Methode einfach mit dem Klassenassistenten erzeugen. Objekt-ID: IDCANCEL<br />
Nachricht: BN_CLICKED.<br />
Falls Du den Abbrechen-Button weiter benutzen willst, musst Du ihm hinterher eine andere ID geben. Für diese kannst Du dann wie bei anderen Buttons auch eine OnClick-Methode erzeugen, und dort schreibst Du einfach wieder CDialog::OnCancel() rein.</p>
<p>viel Erfolg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/340201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/340201</guid><dc:creator><![CDATA[DJohn]]></dc:creator><pubDate>Mon, 25 Aug 2003 15:07:43 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Wed, 27 Aug 2003 06:15:10 GMT]]></title><description><![CDATA[<p>ich habe auch das OnCancel gelöscht/auskommentiert aber es funktioniert nicht</p>
<p>ausserdem weiss ich nicht genau wo ich suchen soll</p>
<p>kann mir bitte jemand helfen?</p>
<p>danke sehr</p>
]]></description><link>https://www.c-plusplus.net/forum/post/341281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/341281</guid><dc:creator><![CDATA[maximo]]></dc:creator><pubDate>Wed, 27 Aug 2003 06:15:10 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Wed, 27 Aug 2003 08:14:27 GMT]]></title><description><![CDATA[<p>Nu gibt es schon eine schöne Suchfunktion, aber...</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39095" rel="nofollow">Wer suchet, der findet...</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/341347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/341347</guid><dc:creator><![CDATA[Hexagon]]></dc:creator><pubDate>Wed, 27 Aug 2003 08:14:27 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Wed, 27 Aug 2003 08:25:41 GMT]]></title><description><![CDATA[<p>ich habe gesucht nur wie soll ich suchen wenn ich nicht weiss wie der jenige die frage formuliert hat? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/341356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/341356</guid><dc:creator><![CDATA[maximo]]></dc:creator><pubDate>Wed, 27 Aug 2003 08:25:41 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Wed, 27 Aug 2003 20:52:08 GMT]]></title><description><![CDATA[<p>gibts auch ne möglichkeit mit der noch das kleine &quot;x&quot; funktuniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/342030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/342030</guid><dc:creator><![CDATA[blacka6]]></dc:creator><pubDate>Wed, 27 Aug 2003 20:52:08 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Thu, 28 Aug 2003 06:37:04 GMT]]></title><description><![CDATA[<p>das wollte ich auch fragen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
weil eben dadurch das X nicht geht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/342143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/342143</guid><dc:creator><![CDATA[maximo]]></dc:creator><pubDate>Thu, 28 Aug 2003 06:37:04 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Mon, 10 Nov 2003 10:21:09 GMT]]></title><description><![CDATA[<p>Huhu Peoplez</p>
<p>Solltet Ihr die OnCancel Methode ganz und gar beseitigen so habt Ihr nicht mehr die Möglichkeit über das X den Dialog zu schließen.<br />
Mit dieser Methode funktioniert das Schließen über das X aber das schließen durch ESC wird verhindert.</p>
<p>Probiert es aus.</p>
<pre><code class="language-cpp">BOOL CAsbDirectoryDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen
    ////////////////////////////////////////////////////////////////
    // Diese Zeile einbauen !!
    if ((pMsg-&gt;message == 0x100) &amp;&amp; (pMsg-&gt;wParam == 27)){return FALSE;}
    ////////////////////////////////////////////////////////////////
	m_ctlToolTips.RelayEvent(pMsg); // Dies könnt Ihr ignorieren !!!
	return CDialog::PreTranslateMessage(pMsg);
}
</code></pre>
<p>Gruss Daywalker</p>
]]></description><link>https://www.c-plusplus.net/forum/post/390614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/390614</guid><dc:creator><![CDATA[DaDaywalker]]></dc:creator><pubDate>Mon, 10 Nov 2003 10:21:09 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Mon, 10 Nov 2003 10:27:58 GMT]]></title><description><![CDATA[<p>Wenn du jetzt noch 0x100 durch WM_KEYDOWN ersetzt... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/390634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/390634</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 10 Nov 2003 10:27:58 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Mon, 10 Nov 2003 13:58:33 GMT]]></title><description><![CDATA[<p>kleine frage dazu...</p>
<p>ist es auf diesem wege möglich ein &quot;geöffnetes dukument speichern&quot; / &quot;sind sie sicher&quot; dialog zu erstellen, welcher vor dem tatsächlichen beenden des programms noch eine kleinigkeit erledigt und eine möglichkeit zum abbrechen des schliessen-vorgangs bietet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/390838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/390838</guid><dc:creator><![CDATA[alex-t]]></dc:creator><pubDate>Mon, 10 Nov 2003 13:58:33 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Tue, 11 Nov 2003 08:27:32 GMT]]></title><description><![CDATA[<p>Im Bezug auf welches Schließen ?</p>
<p>Theoretisch und auch praktisch ist dies natürlich möglich nur solltest du genau definieren bei welchem Schließen du diese Operation ausführen möchtest.</p>
<p>Es gibt 2 oder auch mehr Wege um dies zu realisieren.<br />
2 der Bekanntesten sind folgende...</p>
<p>1. Abfangen der Nachrichten und Reaktion Beispiel abfangen der ESC Taste und eventuelles Speichern vorhandener Daten.</p>
<pre><code>BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)  
{ 
    // TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen 
    //////////////////////////////////////////////////////////////// 
    // Diese Zeile einbauen !! 
    if ((pMsg-&gt;message == WM_KEYDOWN) &amp;&amp; (pMsg-&gt;wParam == VK_ESCAPE))
    {
	// Hier Behandlung einfügen z.B.

	CString	szMyProgramName, szMyMsg;

	szMyProgramName.LoadString(IDS_PROGNAME);
	szMyMsg.LoadString(IDS_MSG_ENDPROGRAM);

	if (IDYES == MessageBox(szMyMsg, szMyProgramName, MB_YESNO | MB_ICONWARNING))
	{
		// Der Nutzer möchte das Programm beenden und vorher Speichern.
		... = SaveData(...);
		CDialog::PreTranslateMessage(pMsg);
		// Das Programm speichert die Daten und beendet sich.
	}
	return FALSE; // Program wird nicht beendet bei ESC Key
    } 
    //////////////////////////////////////////////////////////////// 
    m_ctlToolTips.RelayEvent(pMsg); // Dies könnt Ihr ignorieren !!! 
    return CDialog::PreTranslateMessage(pMsg); 
}
</code></pre>
<p>2. Der Weg über den Destruktor</p>
<p>Die Möglichkeit sieht wie folgt aus...</p>
<p>Überschreibe den Konstruktor deiner Dialog Klasse und prüfe z.B ob der Pointer auf dein Dokument noch geöffnet ist.<br />
Erstelle dann eine MessageBox und frage den Nutzer ob er die Daten speichern möchte. Wenn ja dann speichere und wenn nein dann erledigt der Destruktor den Rest seiner Arbeit.<br />
Der Destruktor wird bei der Beendigung des Dialoges aufgerufen und die Klasse ist zu diesem Zeitpunkt noch komplett erhalten. Anschließend wird die Instanz der Klasse zerstört und alle Werte respektive Zugriffe auf die Instanz verursachen einen Absturz.</p>
<p>Ich helfe dir gerne weiter bei deinem Problem dennoch müsstest du es ein wenig näher beschreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/391453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/391453</guid><dc:creator><![CDATA[DaDaywalker]]></dc:creator><pubDate>Tue, 11 Nov 2003 08:27:32 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Tue, 11 Nov 2003 08:32:07 GMT]]></title><description><![CDATA[<p>mit schliessen meine ich das beenden der anwendung.<br />
der programmnutzer klickt auf das x oben rechts und bekommt erst ein modales dialog. in dem hat er z.b. die möglichkeit eine sicherung auf eine diskette durchzuführen oder abzubrechen, sodass man wieder zum programm gelangt.</p>
<p>ich verwende in dem sinne keine dokumente. meine mdi anwendung nutze ich nur als rahmenanwendung um formulare anzeigen zu lassen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/391458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/391458</guid><dc:creator><![CDATA[alex-t]]></dc:creator><pubDate>Tue, 11 Nov 2003 08:32:07 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Tue, 11 Nov 2003 08:35:14 GMT]]></title><description><![CDATA[<p>So wie sagte würde ich den weg über den Destruktor wählen.</p>
<p>Dort öffnest du den Dialog zum Speichern und Anschließend kehrst du wieder zu Destruktor zurück und beendest das Programm.</p>
<p>Beispiel:</p>
<pre><code>int CMyDialog::~CMyDialog()
{
  CSaveDlg pSaveDlg;

  pSaveDlg.DoModal();

  /// Fertig !!!!!

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/391461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/391461</guid><dc:creator><![CDATA[DaDaywalker]]></dc:creator><pubDate>Tue, 11 Nov 2003 08:35:14 GMT</pubDate></item><item><title><![CDATA[Reply to ESC schliesst Dialog on Tue, 11 Nov 2003 12:03:47 GMT]]></title><description><![CDATA[<p>DaDaywalker schrieb:</p>
<blockquote>
<p>So wie sagte würde ich den weg über den Destruktor wählen.</p>
<p>Dort öffnest du den Dialog zum Speichern und Anschließend kehrst du wieder zu Destruktor zurück und beendest das Programm.</p>
<p>Beispiel:</p>
<pre><code>int CMyDialog::~CMyDialog()
{
  CSaveDlg pSaveDlg;
  
  pSaveDlg.DoModal();

  /// Fertig !!!!!

}
</code></pre>
</blockquote>
<p>soweit so gut, aber wie bekomme ich es hin, dass ich beim abbrechen im &quot;save&quot; dialog wieder zum programm zurückkehre. das ist damit gemeint. ich möchte das schliessen der anwendung in diesem dialog abbrechen können.</p>
<p>noch mal das ganze:</p>
<p>(1) klick auf [x]</p>
<p>(2) dialog erscheint modal:<br />
________________________________<br />
|<br />
|<br />
| &gt; Sichern auf Diskette/Zip<br />
| und beenden<br />
|<br />
| &gt; Beenden ohne Sichern<br />
|<br />
|<br />
| &gt; Zurück zum Programm<br />
|<br />
--------------------------------</p>
<p>hoffe jetzt ist deutlich was ich vorhabe</p>
<p>und(!) das ganze ist eine mdi anwendung...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/391611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/391611</guid><dc:creator><![CDATA[alex-t]]></dc:creator><pubDate>Tue, 11 Nov 2003 12:03:47 GMT</pubDate></item></channel></rss>