<?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[Lösungsvorschlag für einen Dialog mit dem man sowohl Dateien als auch Ordner auswählen kann.]]></title><description><![CDATA[<p>Ich hab mir jetzt mal eine Lösung gebastelt die macht was ich will:</p>
<pre><code class="language-cpp">#define STRICT
//...
HWND DiagFeld;
WNDPROC OldProc;
bool CharSet;
//...
LRESULT CALLBACK NewProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
 if(uMsg==WM_LBUTTONUP)
 {
   if(GetWindowTextLength(DiagFeld)==0)
   {
    SetWindowText(DiagFeld, &quot;#&quot;);
    CharSet=true;
   }
 }
 return CallWindowProc(OldProc, hwnd, uMsg, wParam, lParam);
}

void __fastcall TForm1::saveShow(TObject *Sender)
{
 HWND hDialog = GetParent(((TOpenDialog*)Sender)-&gt;Handle);
 HWND button  = GetDlgItem(hDialog, ID_OK);
 DiagFeld     = GetDlgItem(hDialog, 1152);

 OldProc=(WNDPROC)SetWindowLong(button,GWL_WNDPROC,(LONG)NewProc);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::saveFolderChange(TObject *Sender)
{
 if(CharSet)
 {
  SetWindowText(DiagFeld, &quot;&quot;);
  CharSet=false;
 }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 if(save-&gt;Execute())
 if(CharSet)
  save-&gt;FileName=ExtractFilePath(save-&gt;FileName);
 ShowMessage(save-&gt;FileName);
}
</code></pre>
<p>Ist vielleicht nicht die schönste Lösung aber sie tut.</p>
<p>Wollte jetzt mal fragen was ihr so davon haltet.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/175944/lösungsvorschlag-für-einen-dialog-mit-dem-man-sowohl-dateien-als-auch-ordner-auswählen-kann</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 02:53:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175944.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 15 Mar 2007 17:04:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Lösungsvorschlag für einen Dialog mit dem man sowohl Dateien als auch Ordner auswählen kann. on Thu, 15 Mar 2007 17:04:44 GMT]]></title><description><![CDATA[<p>Ich hab mir jetzt mal eine Lösung gebastelt die macht was ich will:</p>
<pre><code class="language-cpp">#define STRICT
//...
HWND DiagFeld;
WNDPROC OldProc;
bool CharSet;
//...
LRESULT CALLBACK NewProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
 if(uMsg==WM_LBUTTONUP)
 {
   if(GetWindowTextLength(DiagFeld)==0)
   {
    SetWindowText(DiagFeld, &quot;#&quot;);
    CharSet=true;
   }
 }
 return CallWindowProc(OldProc, hwnd, uMsg, wParam, lParam);
}

void __fastcall TForm1::saveShow(TObject *Sender)
{
 HWND hDialog = GetParent(((TOpenDialog*)Sender)-&gt;Handle);
 HWND button  = GetDlgItem(hDialog, ID_OK);
 DiagFeld     = GetDlgItem(hDialog, 1152);

 OldProc=(WNDPROC)SetWindowLong(button,GWL_WNDPROC,(LONG)NewProc);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::saveFolderChange(TObject *Sender)
{
 if(CharSet)
 {
  SetWindowText(DiagFeld, &quot;&quot;);
  CharSet=false;
 }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 if(save-&gt;Execute())
 if(CharSet)
  save-&gt;FileName=ExtractFilePath(save-&gt;FileName);
 ShowMessage(save-&gt;FileName);
}
</code></pre>
<p>Ist vielleicht nicht die schönste Lösung aber sie tut.</p>
<p>Wollte jetzt mal fragen was ihr so davon haltet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1246211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1246211</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Thu, 15 Mar 2007 17:04:44 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschlag für einen Dialog mit dem man sowohl Dateien als auch Ordner auswählen kann. on Thu, 15 Mar 2007 17:53:20 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich hab's mal ausprobiert, aber nach wie vor kann ich nur Dateien auswählen, keine Ordner. Hab ich vielleicht irgendetwas übersehen?<br />
Bei 'save' bin ich mal davon ausgegangen, daß es sich um einen TSaveDialog handelt.<br />
Gruß,<br />
Christian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1246246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1246246</guid><dc:creator><![CDATA[Christian Sonder]]></dc:creator><pubDate>Thu, 15 Mar 2007 17:53:20 GMT</pubDate></item><item><title><![CDATA[Reply to Lösungsvorschlag für einen Dialog mit dem man sowohl Dateien als auch Ordner auswählen kann. on Thu, 15 Mar 2007 18:44:08 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>Die Ordnerauswahl funktioniert so, dass der Dialog den Ordner zurück gibt in dem sich der Benutzer aktuell befindet wenn dieser auf &quot;Speichern klickt&quot;.<br />
Bei mir funktioniert das jedenfalls wunderbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1246266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1246266</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Thu, 15 Mar 2007 18:44:08 GMT</pubDate></item></channel></rss>