<?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 in Klasse macht Probleme :(]]></title><description><![CDATA[<p>Hallihallo, ich sitz nunmehr schon seit etwas längerer zeit an einem Problem wo ich nicht mehr weiterweis.<br />
Und zwar geht es um folgendes:<br />
ich habe eine DLL mit einer Dialogresource. In dieser DLL ist wiederum eine Klasse die die Resource per DialogBox lädt/öffnet/anzeigt ^^. Ich hab es nun hinbekommen das die scheinbar richtige Resource geladen wird, aber es wird einfach nix angezeigt. Ich frage in der Dialog-Callback die msg's ab, dort wird sehr häufig der Wert '28' geliefert, aber auch '48', '272'. Das sind meißten werte.<br />
Jetzt wollte ich gern wissen warum das Dialogfeld einfach nicht angezeigt wird, ich hoffe ihr könnt mir da helfen =))</p>
<p>Hier der Source dazu:</p>
<pre><code class="language-cpp">bool GLWindow::ShowDisplayDialog()
{

	DialogBox(GetModuleHandle(&quot;engine.dll&quot;), MAKEINTRESOURCE(IDD_SETTING), NULL, GLWindow::DlgProc);
      return true;
}

INT_PTR CALLBACK GLWindow::DlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	static DEVICE dev;
	static DISPLAY dis;
	static GLWindow win;
	static char entry[256];

	static char buf[256];
	sprintf(buf, &quot;callback-&gt;msg: %d&quot;, msg);

	MessageBox(NULL, buf, &quot;Msg&quot;, NULL);
	switch(msg)
	{
		MessageBox(NULL, &quot;switch&quot;, &quot;Msg&quot;, NULL);
		case WM_INITDIALOG:
		{
			MessageBox(NULL, &quot;init&quot;, &quot;Msg&quot;, NULL);
			InitCommonControls();

			dev.device_num = 0;
			dev.adapter = NULL;
			dis.display_num = 0;
			dis.settings = NULL;

			win.EnumDisplayAdapters(&amp;dev);
			win.EnumDisplaySetting(&amp;dev, &amp;dis, 0);

			for(unsigned long j = 0; j &lt; dis.display_num; j++)
			{
				sprintf(entry, &quot;%u x %u x %u   %uHz&quot;, dis.settings[j].width, dis.settings[j].height, dis.settings[j].bpp, dis.settings[j].frequenzy);
				SendDlgItemMessage(hwnd, IDC_SETTINGS, CB_ADDSTRING, 0, (LPARAM)(char*)entry);
			}

			for(unsigned int i = 0; i &lt; dev.device_num; i++)
			{
				SendDlgItemMessage(hwnd, IDC_ADAPTER, CB_ADDSTRING, 0, (LPARAM)(char*)dev.adapter[i].device_string);

			}
			SendDlgItemMessage(hwnd, IDC_ADAPTER, CB_SETCURSEL, (WPARAM)0, 0);
			SendDlgItemMessage(hwnd, IDC_SETTINGS, CB_SETCURSEL, (WPARAM)0, 0);

			return TRUE;
		}
		case WM_COMMAND:
		{
			switch(LOWORD(wParam))
			{
				case IDC_ADAPTER:
				{
					if(HIWORD(wParam) == CBN_SELCHANGE)
					{
						int i = (int)SendDlgItemMessage(hwnd, IDC_ADAPTER, CB_GETCURSEL, 0, 0);
						win.EnumDisplaySetting(&amp;dev, &amp;dis, i);
						SendDlgItemMessage(hwnd, IDC_SETTINGS, CB_RESETCONTENT, 0, 0);
						for(unsigned long j = 0; j &lt; dis.display_num; j++)
						{
							sprintf(entry, &quot;%u x %u x %u   %uHz&quot;, dis.settings[j].width, dis.settings[j].height, dis.settings[j].bpp, dis.settings[j].frequenzy);
							SendDlgItemMessage(hwnd, IDC_SETTINGS, CB_ADDSTRING, 0, (LPARAM)(char*)entry);
						}
						SendDlgItemMessage(hwnd, IDC_SETTINGS, CB_SETCURSEL, (WPARAM)0, 0);
					}
				}
				case IDC_CANCEL:
				{
					PostQuitMessage(0);
				}
				case IDC_OK:
				{
					EndDialog(hwnd, wParam);
					return TRUE;
				}
				break;
			}
		}
		case WM_CLOSE:
		{
			EndDialog(hwnd, wParam);
			return TRUE;
		}
		case WM_DESTROY:
		{
			MessageBox(NULL, &quot;WM_DESTROY&quot;, &quot;Msg&quot;, NULL);
			return TRUE;
		}
		case WM_QUIT:
		{
			MessageBox(NULL, &quot;WM_QUIT&quot;, &quot;Msg&quot;, NULL);
			return TRUE;
		}
	}
	return FALSE;
}
</code></pre>
<p>Er kommt überhaupt nicht erst in den äußeren switch block.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/161817/dialog-in-klasse-macht-probleme</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 10:30:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/161817.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 Oct 2006 11:14:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dialog in Klasse macht Probleme :( on Wed, 11 Oct 2006 11:16:02 GMT]]></title><description><![CDATA[<p>Hallihallo, ich sitz nunmehr schon seit etwas längerer zeit an einem Problem wo ich nicht mehr weiterweis.<br />
Und zwar geht es um folgendes:<br />
ich habe eine DLL mit einer Dialogresource. In dieser DLL ist wiederum eine Klasse die die Resource per DialogBox lädt/öffnet/anzeigt ^^. Ich hab es nun hinbekommen das die scheinbar richtige Resource geladen wird, aber es wird einfach nix angezeigt. Ich frage in der Dialog-Callback die msg's ab, dort wird sehr häufig der Wert '28' geliefert, aber auch '48', '272'. Das sind meißten werte.<br />
Jetzt wollte ich gern wissen warum das Dialogfeld einfach nicht angezeigt wird, ich hoffe ihr könnt mir da helfen =))</p>
<p>Hier der Source dazu:</p>
<pre><code class="language-cpp">bool GLWindow::ShowDisplayDialog()
{

	DialogBox(GetModuleHandle(&quot;engine.dll&quot;), MAKEINTRESOURCE(IDD_SETTING), NULL, GLWindow::DlgProc);
      return true;
}

INT_PTR CALLBACK GLWindow::DlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	static DEVICE dev;
	static DISPLAY dis;
	static GLWindow win;
	static char entry[256];

	static char buf[256];
	sprintf(buf, &quot;callback-&gt;msg: %d&quot;, msg);

	MessageBox(NULL, buf, &quot;Msg&quot;, NULL);
	switch(msg)
	{
		MessageBox(NULL, &quot;switch&quot;, &quot;Msg&quot;, NULL);
		case WM_INITDIALOG:
		{
			MessageBox(NULL, &quot;init&quot;, &quot;Msg&quot;, NULL);
			InitCommonControls();

			dev.device_num = 0;
			dev.adapter = NULL;
			dis.display_num = 0;
			dis.settings = NULL;

			win.EnumDisplayAdapters(&amp;dev);
			win.EnumDisplaySetting(&amp;dev, &amp;dis, 0);

			for(unsigned long j = 0; j &lt; dis.display_num; j++)
			{
				sprintf(entry, &quot;%u x %u x %u   %uHz&quot;, dis.settings[j].width, dis.settings[j].height, dis.settings[j].bpp, dis.settings[j].frequenzy);
				SendDlgItemMessage(hwnd, IDC_SETTINGS, CB_ADDSTRING, 0, (LPARAM)(char*)entry);
			}

			for(unsigned int i = 0; i &lt; dev.device_num; i++)
			{
				SendDlgItemMessage(hwnd, IDC_ADAPTER, CB_ADDSTRING, 0, (LPARAM)(char*)dev.adapter[i].device_string);

			}
			SendDlgItemMessage(hwnd, IDC_ADAPTER, CB_SETCURSEL, (WPARAM)0, 0);
			SendDlgItemMessage(hwnd, IDC_SETTINGS, CB_SETCURSEL, (WPARAM)0, 0);

			return TRUE;
		}
		case WM_COMMAND:
		{
			switch(LOWORD(wParam))
			{
				case IDC_ADAPTER:
				{
					if(HIWORD(wParam) == CBN_SELCHANGE)
					{
						int i = (int)SendDlgItemMessage(hwnd, IDC_ADAPTER, CB_GETCURSEL, 0, 0);
						win.EnumDisplaySetting(&amp;dev, &amp;dis, i);
						SendDlgItemMessage(hwnd, IDC_SETTINGS, CB_RESETCONTENT, 0, 0);
						for(unsigned long j = 0; j &lt; dis.display_num; j++)
						{
							sprintf(entry, &quot;%u x %u x %u   %uHz&quot;, dis.settings[j].width, dis.settings[j].height, dis.settings[j].bpp, dis.settings[j].frequenzy);
							SendDlgItemMessage(hwnd, IDC_SETTINGS, CB_ADDSTRING, 0, (LPARAM)(char*)entry);
						}
						SendDlgItemMessage(hwnd, IDC_SETTINGS, CB_SETCURSEL, (WPARAM)0, 0);
					}
				}
				case IDC_CANCEL:
				{
					PostQuitMessage(0);
				}
				case IDC_OK:
				{
					EndDialog(hwnd, wParam);
					return TRUE;
				}
				break;
			}
		}
		case WM_CLOSE:
		{
			EndDialog(hwnd, wParam);
			return TRUE;
		}
		case WM_DESTROY:
		{
			MessageBox(NULL, &quot;WM_DESTROY&quot;, &quot;Msg&quot;, NULL);
			return TRUE;
		}
		case WM_QUIT:
		{
			MessageBox(NULL, &quot;WM_QUIT&quot;, &quot;Msg&quot;, NULL);
			return TRUE;
		}
	}
	return FALSE;
}
</code></pre>
<p>Er kommt überhaupt nicht erst in den äußeren switch block.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1152819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1152819</guid><dc:creator><![CDATA[VirtualDreams]]></dc:creator><pubDate>Wed, 11 Oct 2006 11:16:02 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog in Klasse macht Probleme :( on Wed, 11 Oct 2006 13:19:22 GMT]]></title><description><![CDATA[<p>Geht er denn in die GLWindow::DlgProc (BTW: Ist die als static deklariert ( <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Statische Methode) ? ) ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1152912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1152912</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 11 Oct 2006 13:19:22 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog in Klasse macht Probleme :( on Thu, 12 Oct 2006 05:50:21 GMT]]></title><description><![CDATA[<p>Ja, er geht rein, hat sich aber auch inzwischen erledigt. Ein fehlendes &quot;break&quot; war der auslöser, da kann man schon wahnsinnig werden.</p>
<p>Mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1153243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1153243</guid><dc:creator><![CDATA[VirtualDreams]]></dc:creator><pubDate>Thu, 12 Oct 2006 05:50:21 GMT</pubDate></item></channel></rss>