<?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[Dialogproblem]]></title><description><![CDATA[<p>Hallo!</p>
<p>Wenn ich einen Dialog erstelle und anzeigen, dann kann ich den nciht verschieben. (egal ob Parent = Null oder hauptfenster). Aber seine titelleiste ist jedenfalls blau, also aktiviert. Rufe ich von diesem Dialog nun zB eine MessageBox auf, dann kann man die gar nicht anklicken. Genau so ist es mit GetOpenFileName, kann man auch nicht anklicken und nur mit doppelklick auf Dateinamen beednen (Oder Affengriff)<br />
Was kann man denn da machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/67952/dialogproblem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 10:28:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/67952.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 13 Mar 2004 10:27:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dialogproblem on Sat, 13 Mar 2004 10:27:30 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Wenn ich einen Dialog erstelle und anzeigen, dann kann ich den nciht verschieben. (egal ob Parent = Null oder hauptfenster). Aber seine titelleiste ist jedenfalls blau, also aktiviert. Rufe ich von diesem Dialog nun zB eine MessageBox auf, dann kann man die gar nicht anklicken. Genau so ist es mit GetOpenFileName, kann man auch nicht anklicken und nur mit doppelklick auf Dateinamen beednen (Oder Affengriff)<br />
Was kann man denn da machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/479506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/479506</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Sat, 13 Mar 2004 10:27:30 GMT</pubDate></item><item><title><![CDATA[Reply to Dialogproblem on Sat, 13 Mar 2004 11:05:15 GMT]]></title><description><![CDATA[<p>Das klingt ziemlich eigenartig...</p>
<p>Kannst du den Code herzeigen mit dem du den Dialog erstellst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/479525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/479525</guid><dc:creator><![CDATA[Aziz]]></dc:creator><pubDate>Sat, 13 Mar 2004 11:05:15 GMT</pubDate></item><item><title><![CDATA[Reply to Dialogproblem on Sat, 13 Mar 2004 12:18:13 GMT]]></title><description><![CDATA[<p>also, wird aus seiner resource erstellt...<br />
Hier wie ich ihn azeige:</p>
<pre><code class="language-cpp">//in WM_COMMAND:
case ID_KARTE_TILEDATA:
  DialogBox(hInst, MAKEINTRESOURCE(IDD_TILEDATA), NULL, TileDataProc);
break;

// und dann hier im Dialog:
// wennichb auf einen Button drücke:
int result = MessageBox(0, &quot;Soll eine Binär-Datei (Ja) oder eine ASCII-Datei(NEIN) erstellt werden?&quot;, &quot;Dateiart?&quot;, MB_YESNOCANCEL);

// Diese MesageBox kann man icht anklicken
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/479550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/479550</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Sat, 13 Mar 2004 12:18:13 GMT</pubDate></item><item><title><![CDATA[Reply to Dialogproblem on Sat, 13 Mar 2004 12:41:59 GMT]]></title><description><![CDATA[<p>Ich denke als dritten Parameter darfst du kein NULL übergeben. Die MSDN schweigt nämlich darüber was passiert wenn man bei diesem Parameter ein NULL übergibt, was höchstwahrscheinlich bedeutet, dass das nicht erlaubt ist und zu Fehlern führen kann.</p>
<p>Also Übergib das Handle zu deinem Hauptfenster. Ich würd mich wundern wenns danach nicht funktionieren würde. Außerdem solltest du 0 zurückgeben statt break.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/479564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/479564</guid><dc:creator><![CDATA[Aziz]]></dc:creator><pubDate>Sat, 13 Mar 2004 12:41:59 GMT</pubDate></item><item><title><![CDATA[Reply to Dialogproblem on Sat, 13 Mar 2004 12:50:54 GMT]]></title><description><![CDATA[<p>wenn ich das so mache:</p>
<pre><code class="language-cpp">// hWnd ist 0x00000e1c oder so, also != NULL
DialogBox(hInst, MAKEINTRESOURCE(IDD_TILEDATA), g_hWnd, TileDataProc);
</code></pre>
<p>dann passiert genau das gleiche. Bei der MesageBox ist geb ich dann zB das Dialoghandel oder das globale an, aber es ist immer das selbe</p>
<p>kann das vieleicht an der NAchrichten schleife liegen?</p>
<pre><code class="language-cpp">// Hauptnachrichtenschleife:
	while( GetMessage(&amp;msg, NULL, 0, 0) ) 
	{
		if( !TranslateAccelerator (msg.hwnd, hAccelTable, &amp;msg) ) 
		{
			TranslateMessage( &amp;msg );
			DispatchMessage( &amp;msg );
		}
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/479568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/479568</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Sat, 13 Mar 2004 12:50:54 GMT</pubDate></item><item><title><![CDATA[Reply to Dialogproblem on Sat, 13 Mar 2004 12:56:56 GMT]]></title><description><![CDATA[<p>Zeig mal deine TileDataProc</p>
]]></description><link>https://www.c-plusplus.net/forum/post/479573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/479573</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 13 Mar 2004 12:56:56 GMT</pubDate></item><item><title><![CDATA[Reply to Dialogproblem on Sat, 13 Mar 2004 12:59:15 GMT]]></title><description><![CDATA[<p>Hier, ist aber ziemlcih lang, und außerdem ist es bei allen Dailogen so, dass man die nicht verschieben kann.</p>
<pre><code class="language-cpp">INT CALLBACK TileDataProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
	char c[64];
	int i = 0;

	static DWORD* data;
	static CurrentLine = -1;

	switch(Msg)
	{
	case WM_INITDIALOG:
		if(!MapInit)
		{
			MSG_ERROR(&quot;Es ist keine Karte geladen!&quot;);
			EndDialog(hWnd, 1);
			return 0;
		}

		data = new DWORD[g_Map-&gt;GetNumTiles(0)];

		// Alle Tiles auflisten
		for(i = 0; i &lt; g_Map-&gt;GetNumTiles(0); i++)
		{
			sprintf(c, &quot;Tile %d&quot;, i);
			SendDlgItemMessage(hWnd, IDC_TILELIST, LB_ADDSTRING, 0, (long)c);

			// Daten abfragen
			data[i] = *g_Map-&gt;GetTileData(0, i);
		}

		SendDlgItemMessage(hWnd, IDC_TILE, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)g_MapStruct-&gt;TexBmp);

		break;

	case WM_COMMAND:
		switch(LOWORD(wParam))
		{
		case IDC_OK:
			// Daten kopieren
			for(i = 0; i &lt; g_Map-&gt;GetNumTiles(0); i++)
				*g_Map-&gt;GetTileData(0, i) = data[i];
			EndDialog(hWnd, 0);
			break;

		case IDC_CANCEL:
			EndDialog(hWnd, 1);
			break;

		case IDC_TILELIST:
			if(HIWORD(wParam) == LBN_SELCHANGE)
			{
				// Alte Daten in Tiledata schreiben
				// Alle checkboxes durchgehen
				DWORD tmpdata = 0;
				DWORD bit = 1;
				for(DWORD i = 0; i &lt; 32; i++)
				{
					if(IsDlgButtonChecked(hWnd, IDC_FLAG0+i))
						tmpdata = tmpdata | bit;
					bit = bit * 2;
				}
				if(CurrentLine != -1)
					data[CurrentLine] = tmpdata;

				CurrentLine = SendDlgItemMessage(hWnd, IDC_TILELIST, LB_GETCURSEL, 0, 0);
				// Chechboxen nach daten aktualisieren
				tmpdata = data[CurrentLine];
				bit = 1;
				for(i = 0; i &lt; 32; i++)
				{
					if(tmpdata &amp; bit)
						CheckDlgButton(hWnd, IDC_FLAG0+i, TRUE);
					else
						CheckDlgButton(hWnd, IDC_FLAG0+i, FALSE);
					bit = bit * 2;
				}
			}
			break;

		case IDC_LOADDATA:
			{
				char filename[MAX_PATH];
				filename[0] = 0;
				if(!GetFileNameFromDialog(hWnd, DIA_LOAD, &quot;Tiledata files (*.tda)\0*.tda\0All Files (*.*)\0*.*\0\0&quot;, filename))
					return 0;
				else
				{
					me2DMap* ptr = g_Map;
					ptr-&gt;LoadTileData(filename);
					delete data;
					SendMessage(hWnd, WM_INITDIALOG, 0, 0);
				}
			}
			break;
		case IDC_SAVEDATA:
			{
				char filename[MAX_PATH];
				filename[0] = 0;
				if(!GetFileNameFromDialog(hWnd, DIA_SAVE, &quot;Tiledata files (*.tda)\0*.tda\0All files (*.*)\0*.*\0\0&quot;, filename))
					return 0;
				else
				{
					// Daten kopieren
					for(i = 0; i &lt; g_Map-&gt;GetNumTiles(0); i++)
						*g_Map-&gt;GetTileData(0, i) = data[i];
					// ASCII oder Binär?
					int result = MessageBox(hWnd, &quot;Soll eine Binär-Datei (Ja) oder eine ASCII-Datei(NEIN) erstellt werden?&quot;, &quot;Dateiart?&quot;, MB_YESNOCANCEL);
					if(result == IDYES)
						// Und in BinärDatei speichern:
						g_Map-&gt;SaveTileDataBinary(filename);
					else if(result == IDNO)
						g_Map-&gt;SaveTileDataASCII(filename);
				}

			}
			break;

		//	break;

		default:

			return DefWindowProc(hWnd, Msg, wParam, lParam);
		}
		break;

	case WM_DESTROY:
		CurrentLine = -1;
		delete data;
		break;

	default:
		return DefWindowProc(hWnd, Msg, wParam, lParam);
	}
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/479575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/479575</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Sat, 13 Mar 2004 12:59:15 GMT</pubDate></item><item><title><![CDATA[Reply to Dialogproblem on Sat, 13 Mar 2004 13:01:32 GMT]]></title><description><![CDATA[<p>Du solltest dir wohl nochmal die Beispiele zu Dialog-Prozeduren in der MSDN-Library durchlesen. DefWindowProc hat da nämlich nichts zu suchen - allgemein verwendet man return TRUE oder FALSE <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/479579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/479579</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 13 Mar 2004 13:01:32 GMT</pubDate></item><item><title><![CDATA[Reply to Dialogproblem on Sat, 13 Mar 2004 13:09:36 GMT]]></title><description><![CDATA[<p>komisch... ohne DefWindowProc klappt es...<br />
Mit DefDlgProc gibts nen AusnahmeFehler...</p>
<p>naja, werd mir mal die beispiele anschauen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/479582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/479582</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Sat, 13 Mar 2004 13:09:36 GMT</pubDate></item></channel></rss>