|
1) wndYourEdit.SetFocus();
2) wndYourEdit.SetSel(0,-1);
Or the equivalent APIs if you're not using MFC/ATL windowing classes.
--Mike--
http://home.inreach.com/mdunn/
Tables, ladders, chairs, OH MY!
|
|
|
|
|
hello,
I would like to know if it is possible to delete a specific tab in a Tab Control.
Thanks for help.
R.G
|
|
|
|
|
CTabCtrl::DeleteItem in MFC or TCM_DELETEITEM when you're at API level.
Tomasz Sowinski -- http://www.shooltz.com.pl
|
|
|
|
|
Is it possible to connect to an FTP-server through the Passive (PASV) mode (RFC 959)?
See me: www.magerquark.de
|
|
|
|
|
My MDI application can't open (serializable) existing files (with my own extension) without refering to "IDP_FAILED_TO_CREATE"
How can I use correctly OnOpenDocument in my Doc class ?
the use of CWinApp::OnOpenFile don't manage to solve the problem.
Someone can help or give me one example ?
Thank in advance
Leo
(Christian, if you see this new thread can you explain me more precisely your response ?)
Leo
|
|
|
|
|
Hmmm.... you're using serialisation ? I admit I never do, I handle loading and saving myself. In my code, the App class OnFileOpen handler looks like this:
char BASED_CODE szFilter[] = "Bitmap (*.bmp)|*.bmp|Jpeg (*.jpg)|*.jpg|Png (*.png)|*.png|Tiff (*.tiff)|*.tif|Targa (*.tga)|*.tga|Windows Metafile (*.wmf)|*.wmf|All (*.*)|*.*|\0";
CFileOpenDlg dlg(true, "bmp", NULL, OFN_FILEMUSTEXIST, szFilter);
if (m_szLoadPath.GetLength() > 2)
dlg.m_ofn.lpstrInitialDir = m_szLoadPath;
if (dlg.DoModal() == IDOK)
{
m_szLoadPath = dlg.GetPathName();
int pos = m_szLoadPath.ReverseFind('\\');
m_szLoadPath = m_szLoadPath.Left(pos + 1);
AfxGetApp()->OpenDocumentFile(dlg.GetPathName());
}
and then in OpenDocumentFile in my document class, I just go into a series of if/else's to figure out the extension and then load the file accordingly. I don't know how you'd handle it for serialisation, sorry.
I also do this in my doc class OnFileOpen:
CGrausPaintApp * pApp = (CGrausPaintApp*)AfxGetApp();
pApp->OnFileOpen();
because I found the first call goes to the app class, once you have a doc open, the doc class is called. I'd guess you need to do something similar to set things up, but then call Serialise to load. If you've done that, the problem is probably in the Serializing code, and I haven't done that stuff since 1999.
Christian
I've learned that you cannot make someone love you. All you can do is stalk them and hope they panic and give in.
The early bird may get the worm, but it's the second mouse that gets the cheese.
|
|
|
|
|
thank a lot for your response
Leo
|
|
|
|
|
okay, this is my problem
I have a sub-menu , the ID is ID_TOOLS_EDGE_CENTERPOINT , i like to add a function so that when i click on the above sub-menu , i could click only once with my mouse(left button)
and get that point.
i don't know if I have to use UPDATE_COMMAND_UI from the class wizard or not....
Thanks
Ehsan
Ehsan Behboudi
|
|
|
|
|
You want the point where you clicked the menu, or the next point you click ? The first way you handle the menu item and call GetCursorPos right away, the second you handle it to set a flag so OnLButtonDown grabs the variable point and stores it.
OnCommandUI is called just *before* the item is shown.
Christian
I've learned that you cannot make someone love you. All you can do is stalk them and hope they panic and give in.
The early bird may get the worm, but it's the second mouse that gets the cheese.
|
|
|
|
|
I have a DLL where I export functions and classes using the __declspec(dllexport) method.
My DLL function creates an array of objects (also declared using __declspec) and returns that array. I then attempt to uses the delete[] operator on the returned array and the program breaks out complaining "User breakpoint called from code 0x77f9eea9" (I am running in debug mode using VC6.0.
I assume there is some issue with memory allocation. I call new inside the dll to create the array of objects, then from my application that links to that dll I call delete[], which causes the error.
Does anyone know what I am doing wrong.
Thanks
Ian Marshall
|
|
|
|
|
Allocating memory in a DLL and freeing it in EXE will work only if both are using shared (DLL) runtime library. If you link EXE or one of the DLLs with static CRT, your program will have more than one heap, and memory allocated in DLL must be freed in DLL as well.
Tomasz Sowinski -- http://www.shooltz.com.pl
|
|
|
|
|
I am developing a chat system on a dialog based application. To display the text I used a CRichEditCtrl-derived class. The EN_LINK event-mask flag is set, and the EM_AUTOURLDETECT is applied. The text is displayed as a link, that works nice. My problem is that I seem unable to intercept the EN_LINK notification when someone clicks on that link. Has anybody some suggestions what I am doing wrong? (Surely it is my fault )
Thanx alot
Klymer
|
|
|
|
|
Did you specified ENM_LINK flag when sending EM_SETEVENTMASK message to rich edit control?
Tomasz Sowinski -- http://www.shooltz.com.pl
|
|
|
|
|
Yes,I did, thanx anyway as well... I found my error by the time I think I should post more often such things, cause 5 mins later I come up with the answer myself
|
|
|
|
|
As per the MS Docs I'm calling:
AfxGetApp()->SelectPrinter(dlg.m_psd.hDevNames, dlg.m_psd.hDevMode);
after CPageSetupDialog::DoModal()
On Win98 I get two ASSERTs in AfxGlobalFree(). Doesn't happen on W2K. This happens in a Debug Build of the Wordpad sample app as well as in my app.
I've read that setting the bFreeOld param of SelectPrinter() to FALSE causes other problems.
Does anyone have a work around/solution for this.
Thanks.
Neville Franks, Author of ED for Windows
www.getsoft.com
|
|
|
|
|
I don't have a code at hand, but remember this problem. I think you'll be running fine if you pass FALSE as third parameter to SelectPrinter. It used to work on Win9x and NT 4.
Tomasz Sowinski -- http://www.shooltz.com.pl
|
|
|
|
|
I've created an MFC application using DAO to access a DBASE database. It works great on my system, but when trying to run the MFC application on a clean win98 system, i get a
"Unable to initialize DAO/Jet db engine." error. Does anyone know how i can fix this?!?! I've tried installing the newest version of MDAC...but this did'nt help.
|
|
|
|
|
Latest MDAC version - 2.6 - doesn't contain Jet engine. You also need to install Jet 4.0 Service Pack 3.
Tomasz Sowinski -- http://www.shooltz.com.pl
|
|
|
|
|
Thanks for the info! But i'm still having trouble...
I tried installing the Jet 4 SP3 (it contains the Jet engine right?), and then re-installing MDAC 2.6. After doing this...I still receive the same error message.
Have I done something wrong here?
Rob
|
|
|
|
|
Make sure the TEMP environment variable points to a directory that actually exists. That is usually the cause of this problem.
|
|
|
|
|
They say that you should install MDAC 2.6 first, then Jet 4.0 SP3. Unfortunately, the KB article link on Jet download page is broken, so I can't give you more detailed info.
If problem persists, I'd try to install MDAC 2.5 - it comes with Jet.
Tomasz Sowinski -- http://www.shooltz.com.pl
|
|
|
|
|
Still no luck...
What do you guys think of the idea of migrating my application to using ADO instead of DAO... I'm thinking of re-writing the code to use ADO instead of DAO...but i'm currently using DAO to access DBASE database files. Is this possible with ADO?
Would my application be easily distributed to clients using ADO instead of DAO?
I'm willing to do anything to get this problem fixed!
Rob
|
|
|
|
|
I'm trying to write a program to get my machines system properties.
I need to find:
-Total Free Memory
-Total Memory
-Total Free Hard disk space
-Total Hard Disk space
-processor speed
if anyone knows if there is a header file or a standard set of functions to do this, please let me know.
Thanx,
Stan
Stan
|
|
|
|
|
Hi,
Help, I can't seem to get this code right.. it's part of a file loading routine, what I am trying to do is basically find the 'fieldname', and fill 'out' with the next line that comes after it.. It works if the fieldname is present, however, if the fieldname is not present in the input file, the routine just gets stuck in the do..while loop, all help is appreciated!!
bool pPolyhedra::getfield(char *fieldname, CString& out)
{
CString a;
// Eat lines untill we encounter the fieldname, or after we have exhausted the file
do
{
ifile->getline(linebuffer, 255, '\n');
a=linebuffer;
} while (a.Find(fieldname)==-1 || ifile->eof());
if (!ifile->eof())
{
ifile->getline(linebuffer, 255, '\n');
out=linebuffer;
out.TrimRight();
return true;
}
return false;
}
|
|
|
|
|
Assuming your ifile->eof() function performs a valid test for end of file, try it this way:
bool pPolyhedra::getfield(char *fieldname, CString& out)
{
BOOL bFoundField = FALSE;
while (!ifile->eof())
{
ifile->getline(linebuffer, 255, '\n');
a = linebuffer;
if (a.Find(fieldname) == -1)
{
bFoundField = TRUE;
break;
}
}
if (!bFoundField)
{
return FALSE;
}
ifile->getline(linebuffer, 255, '\n');
out = linebuffer;
out.TrimRight();
return true;
}
If it were me, I'd also use the MFC CStdioFile class for reading the file.
|
|
|
|