|
1. modify your ThreadFunc like this:
void ThreadFunc(void * dummy)
2. call _beginthread like this:
_beginthread(ThreadFunc, 0, this);
3. again, modify your ThreadFunc to call a member function of your CMainDlg:
void ThreadFunc(void * dummy)
{
CMainDlg* m_pDlg = (CMainDlg*)dummy;
if(m_pDlg != NULL)
m_pDlg->ThreadFunc(NULL);
}
regards
modified 12-Sep-18 21:01pm.
|
|
|
|
|
Hi,
Your thread ThreadFunc is CMainDlg mamber. To use
CRT _beginthread try to declare it as separate function as:
void ThreadFunc(void * dummy)
{
}
Or try to use AfxBeginThread, or CreateThread
Hope it help.
Vitali
|
|
|
|
|
Thank you all for your replys. Greg S. your solution worked like a charm and its so obvious ... i only forgot to cast it to the editor pointer inside the thread function. ... again thank you all for your solutions.
-Tareq
|
|
|
|
|
Hi,
Can somebody tell me how to do this:
I need to get all .c files from a directorie, and all of its subdirs, without having the user to selected them al manually --> he only needs to select one directory!
Thanks
|
|
|
|
|
MFC CFileFind
Win32 FindFirstFile, FindNextFile
And then recurse down the tree when you find a file that is a sub directory. There MUST be an example on CP
If I have seen further it is by standing on the shoulders of Giants. - Isaac Newton 1676
|
|
|
|
|
a quick example if you don't find one:
WIN32_FIND_DATA findData = {0};
HANDLE findHandle = FindFirstFile( "c:\\my\\dir\\of\\cfiles\\*.c", &findData );
if ( INVALID_HANDLE_VALUE != findHandle ) {
do {
printf( "found file: %s\n", findData.cFileName );
} while ( FindNextFile( findHandle, &findData ) );
}
else {
}
I think that will only go into the dir you specify - to recurse down into sub dirs you'll have to add some extra code
¡El diablo está en mis pantalones! ¡Mire, mire!
Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)!
|
|
|
|
|
Hi,
Suppose I'm writing a program wich uses 3 windows:
1: select a mode
2: select an input\output path
3: perform some actions (and supply the program with the actions properties)
ans suppose i call those windows win1,win2, and win3.
After havig performed the actions in win3, I'd like to show win1 again and let all the others disappear.
HOW CAN I DO THIS?
all those windows are inherited from CDialog and are showed by calling the DoModal method.
Thank you in advance,
|
|
|
|
|
And i forgot:
If i try to get back to the last windows (for instance from win3 to win2), both dont react anymore .
CAn you tell me how this is possible (or rather how to solve it)?
|
|
|
|
|
After win3.DoModal() returns with ID_OK , you call win1.DoModal() again.
Or am I missing something? If yes, please post (relevant!) code.
Good luck!
Who is 'General Failure'? And why is he reading my harddisk?!?
|
|
|
|
|
How to let it return ID_OK?
|
|
|
|
|
I am sorry, it was IDOK .
And you did read the MSDN article about CDialog::DoModal() , did you?
Sorry to be rude, but I think it is the minimum requirement to have read the relevant MSDN articles before asking questions.
Who is 'General Failure'? And why is he reading my harddisk?!?
|
|
|
|
|
Ok,
thanks --> I did, and it worked quite well
|
|
|
|
|
But,
I now need to make my own IDs, instead of IDOK i want to use (for instance IDready): can can I do this?
PS: I've already looked in the MSDN
|
|
|
|
|
CMyDialog::OnOK()
{
EndDialog (IDready);
} /ravi
Let's put "civil" back in "civilization"
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
OK,
but if I try to build my solution, the compiler says IDREADY: undeclared identifier, altough I've declared it allready in my class' message map!
What's wrong with this?
|
|
|
|
|
You need to have IDREADY #defined in resource.h (which you'll #include in your .cpp file).
I suspect you're just starting out with MFC. You'd be wise to read an introductory text on the subject and teach yourself the basics. It shouldn't take long and will save you a lot of frustration. I recommend any of these authors: David Kruglinski, Charles Petzold and Jeff Prosise. You can probably buy their books used on Amazon or EBay for next to nothing.
/ravi
Let's put "civil" back in "civilization"
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
After adding information,it shouldn't be recorded the same information again.
if it is wanted to record same records it should give a message?
how can I do this ?
emroz
|
|
|
|
|
Emre Zorlu wrote:
After adding information,it shouldn't be recorded the same information again.
Adding to what ?
~RaGE();
|
|
|
|
|
I'm using *.mdb table.(ODBC)
After I add recordset ,it should warn me if I try to add same recordset
emroz
|
|
|
|
|
I know there are some differences between the way XP and NT are handling threads, but I do not know hat exactely. Can somebody point me this out ?
My problem is following :
I have made a very simple MFC dialog application, with one single button. Pushing the button launches another dialog in a separate thread, with a progress bar being filled through a timer (the app does not make sense by itself, it is just for testing).
Under NT, I can debug it without any problem.
Under Xp, the debugger hangs after a few steps with F5.
I suppose it is linked with the way Xp and NT are handling threads and processes, therefore my previous question.
Thanks CPians.
~RaGE();
|
|
|
|
|
Does the whole system seem to run REALLY slow too until you manage to kill the debugger? If you are using VC6, this same thing happens to me. Sometimes two or three times in a row. I don't know how to fix it, but I can tell you it sure is a PITA.
Chris Richardson
|
|
|
|
|
I don't know if you already fixed the problem. (3 weeks ago you ask about it) but I had the same problem (hanging when debugging in other then the main thread)
And it has been driving me crazy. And today I search the web again about the problem expecting not to find anything about it.
But I did. On a forum on codeguru.
It seems like if you have enabled "advanced text services" on XP then a DLL is hooked in each process. This is causing VC to stop responding
Sound stupid. And I haven’t heard anything about it before.
But after turning it off. I can now debug without any problem.
To turn off "advanced text services".
1. Open Regional and Language Options in Control Panel.
2. On the Languages tab, under Text services and input languages, click Details.
3. On the Advanced tab of the Text services and input languages dialog box, select the Turn off advanced text services check box to turn text services off.
|
|
|
|
|
Stupid, stupid question.
Is there a way to completely flush cin of everything. A '/n' stays in the buffer if you ever use the stream extraction operators.
The end goal is to replace the VC6 functionality of 'press any button to continue.' which is written out to the console in debug mode. It needs to be using only STL (using cin / streambufs etc), and it only needs to detect enter being pressed. I know I can use _kbhit(), but I'm annoyed enough to want someone to tell me what I'm missing.
Bloody lecturers.
If you can keep you head when all about you
Are losing theirs and blaming it on you;
If you can dream - and not make dreams your master;
If you can think - and not make thoughts you aim;
Yours is the Earth and everything that's in it.
Rudyard Kipling
|
|
|
|
|
Try
cin.ignore(numeric_limits<int>::max());
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
In the MFC Library is the following article:
HOWTO: Clear an istream Object During Extraction
ID: Q132422
INTP
|
|
|
|