I've moved my progress bar dialog out of the UI thread, and the main thread dialogs still (undesirably) show up on bottom. I've added SetWindowPos (with &wndTop), still broken. Added BringWindowToTop(), still broken. Never called ShowWindow(SW_SHOW) on the dialog for my UI thread, still broken.
Then I removed the 'Create' call from the dialog window for my UI thread... and now all of the main thread dialogs seem to show up on top, as I want. So the problem seems to arise from the fact that I have a separate UI thread which owns a CDialog box. If I take away that CDialog box from the UI thread, then all works fine. The reason that I put a CDialog in my other thread is because I need a window to receive WM_COPYDATA messages from a separate application. I need an hWnd for the SendMessage of the COPYDATASTRUCT. My original design had the receipt of the WM_COPYDATA message in my main thread, but it was causing problems with the other application so I moved it to its own thread. So... I need an hWnd for receiving WM_COPYDATA messages, but when I put that window in a separate thread it causes main application thread dialogs to show up at the bottom z-order. When I don't put that window in a separate thread, it causes problems with the application that is sending me the WM_COPYDATAs. help! > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Behalf Of Ehsan Akhgari > Sent: Wednesday, October 06, 2004 3:27 PM > To: [EMAIL PROTECTED] > Subject: RE: [msvc] CFileDialog > > > > I have a CFileDialog that is displayed with a DoModal() call. > > Since it is a modal window, the application waits on it to be > > dismissed before allowing user input in other windows. > > Unfortunately, the dialog window is not coming up as the topmost > > window. It is hidden under other windows, so the > application seems to > > hang... it's waiting for user input in a window that isn't visible. > > > > I guess I could derive a class from CFileDialog and use its > > OnInitDialog() to make sure that the dialog window is visible... but > > that seems like overkill. It sure seems that a dialog window should > > always show up on top. Am I missing some setting? > > The dialog is created and shown as follows: > > > > CFileDialog dlg(TRUE, ".hdr", NULL, OFN_FILEMUSTEXIST | > OFN_READONLY); > > // some dlg.m_ofn values set here if (IDOK == > > dlg.DoModal()) > > // take action here > > Hmm, looks like the application window has been set to something like > "always on top". Have you tried SetWindowPos( ) to bring the > modal window > to the top? > > ------------- > Ehsan Akhgari > > Farda Technology (http://www.farda-tech.com/) > > List Owner: [EMAIL PROTECTED] > > [ Email: [EMAIL PROTECTED] ] > [ WWW: http://www.beginthread.com/Ehsan ] > > > > > _______________________________________________ > msvc mailing list > [EMAIL PROTECTED] > See > http://beginthread.com/mailman/listinfo/msvc_beginthread.com > for subscription changes, and list archive. > _______________________________________________ msvc mailing list [EMAIL PROTECTED] See http://beginthread.com/mailman/listinfo/msvc_beginthread.com for subscription changes, and list archive.
