<?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[Dialog erstellen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab mir über VC++ 2005 einen Dialog erstellt. Nun möchte ich in diesem Dialog eine Checkbox hinzufügen, allerdings ohne den Editor zu benutzen. Also nur mit der Windows Api, da ich später jeweils eine verschiedene anzahl von checkboxen erzeugen möchte, je nachdem wie es die situation erfordert.</p>
<p>Bei normalen Fenstern erstellt man so eine Checkbox ja mit &quot;CreateWindow()&quot;. Wie geht das bei Dialogen, hier mal mein der code meiner CALLBACK Funktion</p>
<pre><code class="language-cpp">INT_PTR CALLBACK InputDevices(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	HWND hCheckbox;

	UNREFERENCED_PARAMETER(lParam);
	switch (message)
	{
	case WM_INITDIALOG:
		hCheckbox = CreateWindow(L&quot;Checkbox&quot;, L&quot;Auswahl&quot;,  BS_CHECKBOX | WS_VISIBLE, 10, 10, 20, 20, NULL, (HMENU) 1000, NULL, NULL);
		ShowWindow(hCheckbox, true);
		return (INT_PTR)TRUE;

	case WM_COMMAND:
		if(LOWORD(wParam) == IDOK)
			EndDialog(hDlg,(INT_PTR)TRUE);
		break;

	case WM_CLOSE:
		EndDialog(hDlg,(INT_PTR)TRUE);
		break;
	}
	return (INT_PTR)FALSE;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/169999/dialog-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 09:07:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169999.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Jan 2007 19:30:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dialog erstellen on Wed, 10 Jan 2007 19:30:56 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab mir über VC++ 2005 einen Dialog erstellt. Nun möchte ich in diesem Dialog eine Checkbox hinzufügen, allerdings ohne den Editor zu benutzen. Also nur mit der Windows Api, da ich später jeweils eine verschiedene anzahl von checkboxen erzeugen möchte, je nachdem wie es die situation erfordert.</p>
<p>Bei normalen Fenstern erstellt man so eine Checkbox ja mit &quot;CreateWindow()&quot;. Wie geht das bei Dialogen, hier mal mein der code meiner CALLBACK Funktion</p>
<pre><code class="language-cpp">INT_PTR CALLBACK InputDevices(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	HWND hCheckbox;

	UNREFERENCED_PARAMETER(lParam);
	switch (message)
	{
	case WM_INITDIALOG:
		hCheckbox = CreateWindow(L&quot;Checkbox&quot;, L&quot;Auswahl&quot;,  BS_CHECKBOX | WS_VISIBLE, 10, 10, 20, 20, NULL, (HMENU) 1000, NULL, NULL);
		ShowWindow(hCheckbox, true);
		return (INT_PTR)TRUE;

	case WM_COMMAND:
		if(LOWORD(wParam) == IDOK)
			EndDialog(hDlg,(INT_PTR)TRUE);
		break;

	case WM_CLOSE:
		EndDialog(hDlg,(INT_PTR)TRUE);
		break;
	}
	return (INT_PTR)FALSE;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1207413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207413</guid><dc:creator><![CDATA[Kalle234]]></dc:creator><pubDate>Wed, 10 Jan 2007 19:30:56 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog erstellen on Wed, 10 Jan 2007 19:42:40 GMT]]></title><description><![CDATA[<p>Eine andere Methode als mit CreateWindow gibts nicht. Aber wenn du sowieso mit nem Dialog arbeitest, tust du gut daran, die Koordinaten der Checkboxen nicht in Pixeln, sondern in Dialog Units (DLUs), so wie im Ressourcen-Editor, anzugeben.<br />
Zur Umrechnung von DLUs in Pixel nimm MapDialogRect. Man kann zwar auch mit GetDialogBaseUnits umrechnen, aber (abgesehen davon, dass MapDialogRect in deinem Context comfortabler ist) hab ich mal gelesen, dass MapDialogRect die Schriftart deines Dialogs berücksichtigt, während GetDialogBaseUnits davon ausgeht, dass du die &quot;MS Shell Font&quot; oder so benutzt.<br />
Die Größe von einem Dialog wird anhand der verwendeten Schriftart festgelegt, deshalb das mit dem MapDialogRect vs GetDialogBaseUnits <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/1207422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207422</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 10 Jan 2007 19:42:40 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog erstellen on Wed, 10 Jan 2007 19:54:29 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p>Eine andere Methode als mit CreateWindow gibts nicht. Aber wenn du sowieso mit nem Dialog arbeitest, tust du gut daran, die Koordinaten der Checkboxen nicht in Pixeln, sondern in Dialog Units (DLUs), so wie im Ressourcen-Editor, anzugeben.<br />
Zur Umrechnung von DLUs in Pixel nimm MapDialogRect. Man kann zwar auch mit GetDialogBaseUnits umrechnen, aber (abgesehen davon, dass MapDialogRect in deinem Context comfortabler ist) hab ich mal gelesen, dass MapDialogRect die Schriftart deines Dialogs berücksichtigt, während GetDialogBaseUnits davon ausgeht, dass du die &quot;MS Shell Font&quot; oder so benutzt.<br />
Die Größe von einem Dialog wird anhand der verwendeten Schriftart festgelegt, deshalb das mit dem MapDialogRect vs GetDialogBaseUnits <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>
</blockquote>
<p>d.h. ich muss die checkboxen also zwingenden über den ressourcen editor vorsehen und kann die nicht zu laufzeit hinzufügen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207429</guid><dc:creator><![CDATA[kalle234]]></dc:creator><pubDate>Wed, 10 Jan 2007 19:54:29 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog erstellen on Wed, 10 Jan 2007 20:05:37 GMT]]></title><description><![CDATA[<p>Doch doch, hab mich wohl nicht so deutlich ausgedrückt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /><br />
Du <strong>kannst</strong> die Checkboxen ruhig zur Laufzeit hinzufügen. Mit CreateWindow.</p>
<p>Ich wollte nur anmerken, dass du deren Koordinaten dir in DLUs überlegen und dann von DLUs in Pixel umrechnen solltest, da der Dialog sehr unterschiedliche Größen haben kann. Wenn du die Koods dann in Pixel-Größen angibst, können die Checkboxen mal da und mal da sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Du könntest z.B. im Ressourcen-Editor gucken, wo die Checkboxen so hinsollen. Da wird das Ganze ja wahrscheinlich in Dialog-Koods angezeigt.<br />
Z.B. könntest du dir überlegen, dass die Checkboxen alle untereinander sollen (nur ein Beispiel) mit den Koordinaten x=20; y=50+i*15; cx=100; cy=13;</p>
<p>Dann könntest du dir ein Rect erstellen: RECT Rct = { 20, 50+i*15, 100, 13 }; und es mit MapDialogRect in Pixel umwandeln. Diese dann der CreateWindow übergeben und du hast es...</p>
<p>Wars diesmal Klara? <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/1207444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207444</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 10 Jan 2007 20:05:37 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog erstellen on Wed, 10 Jan 2007 20:07:50 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p>Doch doch, hab mich wohl nicht so deutlich ausgedrückt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /><br />
Du <strong>kannst</strong> die Checkboxen ruhig zur Laufzeit hinzufügen. Mit CreateWindow.</p>
<p>Ich wollte nur anmerken, dass du deren Koordinaten dir in DLUs überlegen und dann von DLUs in Pixel umrechnen solltest, da der Dialog sehr unterschiedliche Größen haben kann. Wenn du die Koods dann in Pixel-Größen angibst, können die Checkboxen mal da und mal da sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Du könntest z.B. im Ressourcen-Editor gucken, wo die Checkboxen so hinsollen. Da wird das Ganze ja wahrscheinlich in Dialog-Koods angezeigt.<br />
Z.B. könntest du dir überlegen, dass die Checkboxen alle untereinander sollen (nur ein Beispiel) mit den Koordinaten x=20; y=50+i*15; cx=100; cy=13;</p>
<p>Dann könntest du dir ein Rect erstellen: RECT Rct = { 20, 50+i*15, 100, 13 }; und es mit MapDialogRect in Pixel umwandeln. Diese dann der CreateWindow übergeben und du hast es...</p>
<p>Wars diesmal Klara? <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>
</blockquote>
<p>jaaaa danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1207449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207449</guid><dc:creator><![CDATA[Kalle234]]></dc:creator><pubDate>Wed, 10 Jan 2007 20:07:50 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog erstellen on Wed, 10 Jan 2007 20:37:20 GMT]]></title><description><![CDATA[<p>Papa? <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/1207488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1207488</guid><dc:creator><![CDATA[Kalle234]]></dc:creator><pubDate>Wed, 10 Jan 2007 20:37:20 GMT</pubDate></item></channel></rss>