|
Thanks for your reply. I tried set fFileDlg.m_pOFN->hwndOwner = this->GetParent()->m_hwnd , but it's doesn't work.
-- WuJunyin
|
|
|
|
|
Can you show me the code fragment regarding this?
|
|
|
|
|
<br />
CString strFilter = "..."; <br />
CFileDialog fFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,NULL);<br />
fFileDlg.m_pOFN->hwndOwner = this->GetParent()->m_hwnd;<br />
<br />
if (fFileDlg.DoModal() == IDOK)<br />
{<br />
...<br />
}<br />
|
|
|
|
|
Try like this...
CFileDialog fFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this);
//fFileDlg.m_pOFN->hwndOwner = this->GetParent()->m_hwnd;
if (fFileDlg.DoModal() == IDOK)
|
|
|
|
|
I have tried it before I post this message.
|
|
|
|
|
Are you sure that the file dialog is coming as modal? Means can you switch the focus to the main dialog when the file dialog is open?
|
|
|
|
|
I'm sure it's coming as modal, and i cannot switch after the filedialog appeared.
------ WuJunyin
|
|
|
|
|
How is the main window is closed, by the server? Can you please show me the relevant codes?
|
|
|
|
|
Thank you for your help.
This bug has been fixed.
|
|
|
|
|
Could you please tell me what the problem was?
|
|
|
|
|
The point is CFileDialog cannot find its parentswindow.
At first, we close CFileDialog directly.
But this time, when the server side closes application, the client side let CFileDialog finds its parents first, then shut down its parentswindow. The CFileDialog is closed at the time of its parentswindow closed.
|
|
|
|
|
WuJunyin wrote: A Dialog at client side using a CFileDialog to open a image file. the problem is, after the server side close client side dialog, but the CFileDialog remains on screen.
Such a problem can occur only if the file open dialog is not the child of the Dialog. This may happen if you are showing the dialog from a separate thread. try setting the m_ofn.hwndOwner of the CFileDialog with the handle of your dialog.
CFileDialog dlg(1);<br />
dlg.m_ofn.hwndOwner = m_hWnd;
dlg.DoModal()
Its only a guess. just try.
|
|
|
|
|
Thanks for your reply.
It's doesn't work.
-- WuJunyin
|
|
|
|
|
Hello all,
I am being driven crazy by the following stupid run-time error, and I would appreciate very much if someone could help me resolve it. Particulatly, I have the following code:
1: CMimeMessage msg;
2: msg.AddRecipient(_T("to@yahoo.com"));
3: msg.SetSender(_T("from@yahoo.com"));
4: msg.SetSubject(_T("Greetings"));
First three lines of code work perfect. But when I try to execute the 4th one, I get a runtime error, and when I click to retry, I am redirected to following piece of code in file: atlspriv.h.
inline BOOL AtlMimeConvertStringW(
__in IMultiLanguage *pMultiLanguage,
__in UINT uiCodePage,
__in LPCWSTR wszIn,
__out_ecount_part_z(*pnLen, *pnLen) LPSTR *ppszOut,
__inout UINT *pnLen) throw()
{
ATLENSURE( pMultiLanguage != NULL );
ATLENSURE( wszIn != NULL );
...
Has anybody any idea what can be wrong here ? The funny thing is that, all methods in previous code require same parameter, i.e. LPCTSTR, so why should one fail, when another doesnt ?
I dont know, I am confused
I would appreciate any hints, or whatever..
PS. I googled and found out that someone, fixed the problem by using ::CoInitialize(NULL) call, but I cant us it, as it is obsolete in VS2005. ( http://www.tech-archive.net/Archive/VC/microsoft.public.vc.atl/2007-02/msg00055.html )
|
|
|
|
|
stack overwrite?
What happens in the debugger?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<A HREF="http://www.soonr.com">SoonR Inc -- PC Power delivered to your phone</A>
|
|
|
|
|
ATLENSURE( pMultiLanguage != NULL ); // THIS ASSERTION IS THE ONE THAT FAILS !!!
|
|
|
|
|
well, that's why I said it might be someone overwriting the stack...
What happens in the debugger?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<A HREF="http://www.soonr.com">SoonR Inc -- PC Power delivered to your phone</A>
|
|
|
|
|
Hi all. My goal here is to copy the currently used file. Then start the new file and delete the old one. An update sequence if you will.
My code:
<br />
#include <iostream><br />
#include <windows.h><br />
using namespace std;<br />
<br />
int main(int argc, char *argv[])<br />
{<br />
char *file="program.exe";<br />
char *currentfile = argv[0];<br />
CopyFile(currentfile, file, FALSE);<br />
<br />
if(file == currentfile){ <br />
Sleep(8000);<br />
DeleteFile(argv[1]);<br />
}<br />
else{<br />
ShellExecute(0,"open", file, argv[0], 0, SW_SHOW);<br />
exit(1);<br />
}<br />
return 0;<br />
}<br />
Im stumped trying to figure this out. Any suggestions will be accepted (as long as their helpful =P). I think its trying to delete itself, which is 'not' what im trying to do. So if anyone can help me figure out what im doing wrong i'd be very greatful. Thanx in advance!
|
|
|
|
|
I can't figure out what you are really trying to do.
First thing I've noticed is that. you are mainly dealing with a hardcoded file name "program.exe" and passed argument value which is in argv[0]. But you are trying to delete a file which is in argv[1]. I doubt you are really intended to deal with that parameter.
-Sarath.
"Great hopes make everything great possible" - Benjamin Franklin
|
|
|
|
|
Sarath. wrote: I can't figure out what you are really trying to do.
"My goal here is to copy the currently used file. Then start the new file and delete the old one."
I've already said that, i _know_ the code is wrong. Im asking for help in trying to fix it.
|
|
|
|
|
Sorry if I misinterpreted your question. Seems someone else already answered your question.
In addition you will have to use strcmp or any other string comparison routine to compare the strings...
-Sarath.
"Great hopes make everything great possible" - Benjamin Franklin
|
|
|
|
|
dellthinker wrote: if(file == currentfile){
this will never be true, these two pointers are always different.
dellthinker wrote: Sleep(8000);
I like those out-of-the-blue numbers. Should I increase or decrease them when switching
to a faster CPU or another Windows version?
Luc Pattyn [Forum Guidelines] [My Articles]
this months tips:
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use PRE tags to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Luc Pattyn wrote: I like those out-of-the-blue numbers. Should I increase or decrease them when switching
to a faster CPU or another Windows version?
5 for that.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->ßRÅhmmÃ<-·´¯`·.
|
|
|
|
|
<br />
char *file="program.exe";<br />
char *currentfile = argv[0];<br />
<br />
if(file == currentfile){ <br />
...<br />
In this case you're comparing to pointers -- not 2 strings. You must use a string comparison function to do it... strcmp?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<A HREF="http://www.soonr.com">SoonR Inc -- PC Power delivered to your phone</A>
|
|
|
|
|
probably want it case-insensitive...
Luc Pattyn [Forum Guidelines] [My Articles]
this months tips:
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use PRE tags to preserve formatting when showing multi-line code snippets
|
|
|
|