|
Thanks again for your precious help!
So using the debugger I've now realised that the line char *txt = (char *)(LPCTSTR)txtEdit; is the one causing the problem. In the debbuger the value for txt is 8.00. Funny the message box was returning the right charactere when reading from the edit box..
I have tried using char * txt = (char *)(LPCTSTR)txtEdit; instead but it gives me the error cannot convert from 'const unsigned short *' to 'const char *'.
|
|
|
|
|
Sorry tried using const char * txt = (LPCTSTR)txtEdit; and got the error!
|
|
|
|
|
I didn't say that was the line causing the problem I was just touching on coding practice. So have you single-stepped through the code and checked the values of the variables after each line is executed?
Bob Ciora
|
|
|
|
|
No no, I stepped throught the code and that's where the problem is!
I've tried atof and sscanf again defining the char instead of the Cstring and they work fine!
All I need to do now is copy my Cstring into a char, unfortunately const char * txt = (LPCTSTR)txtEdit; doesn't work!
Thanks again!!!
|
|
|
|
|
Actually... CString has a LPCTSTR operator that will perform the conversion automatically in many cases. So:
CString sFloat = "123.45";
const char * szText = sFloat;
float boxval;
int nArgs = sscanf(sFloat, "%s", &boxval);
double d = atof(sFloat);
In all three cases, the compiler understands (based on the l-value in the assignment statements and the prototypes for sscanf and atof ) that you're using the LPCTSTR operator for CString.
The code above will compile and run successfully, and boxval and d will be 123.45.
I have a sneaking suspicion that you've changed something elsewhere in the program, even a minor change, and it fixed the problem.
Bob Ciora
|
|
|
|
|
CString sFloat = "123.45";
const char * szText = sFloat;
This gives me the following error;
error C2440: 'initializing' : cannot convert from 'class CString' to 'const char *'
float boxval;
int nArgs = sscanf(sFloat, "%s", &boxval);
error C2664: 'sscanf' : cannot convert parameter 1 from 'class CString' to 'const char *'
double d = atof(sFloat);
error C2664: 'atof' : cannot convert parameter 1 from 'class CString' to 'const char *'
Thank you so much!!!
|
|
|
|
|
There are some underlying issues here that have not been explained. Did you use AppWizard to create the project? If so, what type of project is it?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Sorry, I'm new to all of this.
I did use AppWizard to create the project with eMbedded visual C++ 3.0 for Pocket PC 2002 application.
Shall it change anything?
Sorry to keep on bothering you all!
Thanks.
|
|
|
|
|
Anonymous wrote:
I did use AppWizard to create the project with eMbedded visual C++ 3.0 for Pocket PC 2002 application.
By this I assume it is not Visual Studio v6.
Anonymous wrote:
Shall it change anything?
The compiler errors you are seeing hint at MFC not being properly defined within the project. As has already been pointed out, CString has an LPCTSTR operator and for that not to work means something is wrong further upstream.
Anonymous wrote:
Sorry to keep on bothering you all!
It's definitely not a bother. But, like most crime dramas on tv, it helps to provide the detective with all pertinent information up front so that s/he can look for clues in all the right places.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Ok, you fixed the problem, so I'm done
Good luck with the rest of your app!
Bob Ciora
|
|
|
|
|
I'm not sure exactly what you are after here but converting text to double, as the subject implies, is as simple as the code snippet I provided earlier. The other code you have is definitely not necessary. You appear to be doing:
text --> double --> text
Is there a point to this exercise? If you are simply wanting to show in a message box what was typed, two lines of code will suffice:
GetDlgItemText(IDC_EDITBOX, txtEdit);
AfxMessageBox("Value is " + txtEdit); If you need the value for calculation reasons, just call atof(txtEdit) .
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Ah...again is it just me or, why don't you just set your edit box to value and float. That way you won't have to convert anything.
Tom Wright
tawright915@yahoo.com
|
|
|
|
|
That's right but if I do that I'd have to write my function as many times as I have Edit boxes with just the name of the float variable changing.
I'd like to do something more generic. It would all work fine if I could convert a string to a float!
Thanks for the help though!
|
|
|
|
|
How do I find out if a Dialog box is open?
I am trying to do a popup dialog box. When user holds down R mouse button a dialog appear and will disappear when R mouse button is release.
I am able to invoke the dialog but I am having problem terminating the dialog
|
|
|
|
|
Anonymous wrote:
I am able to invoke the dialog but I am having problem terminating the dialog
Is it modal or modeless?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
|
By definition, a modal dialog box remains active until it has been dismissed. This would keep the window that owns the dialog (i.e., parent) from seeing the right mouse button.
Perhaps if you provided a bit more information as to what you are doing, an alternative solution could be offered.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Ahh that's why it wouldn't close it when I tried EndDialog.
Currently I am using Scrollview, I have a bunch of object draw on the screen. When user right click on the object it would pop up a dialog with information about the object, but would disappear once the mouse button is released.
Should I be doing it as modaless?
|
|
|
|
|
poiut wrote:
Should I be doing it as modaless?
I would lean in that direction.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Yes at least make it modelss, but even better would be a pop up window that is NOT a dialog at all.
It can still be a child of the parent window, but it would not attempt to capture messages and events like a dialog would.
|
|
|
|
|
Can you point me in the right direction?
Any article/example or function on it?
Thanks
Currently I am reading
http://www.codeproject.com/dialog/csettingsdlg.asp
on Modaless
|
|
|
|
|
Derive an MFC class (assuming that is what you are using) from CWnd and add handlers for it to display your information.
Then call Create() to create the window where ever you need it to show up on screen.
You can 'hide' and 'show' it as necessary, send it updated text, and MoveWindow it as the user moves his mouse around to select different items.
Before your main window ends, you should delete the window you created.
|
|
|
|
|
Thanks David & Blake.
I got modlass working
|
|
|
|
|
|
Hi,
Iam using ToolBarControl & in my "ToolTipsHandler" which is an event declared in the message map as follows
BEGIN_MESSAGE_MAP(C_ListPageTemp, CDialog)
//{{AFX_MSG_MAP(C_ListPageTemp)
ON_NOTIFY_EX(TTN_NEEDTEXTA,0,ToolTipsHandler)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
Now my "ToolTipsHandler" function goes like this
*****************************************
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID =pNMHDR->idFrom;
pTTT->lpszText = MAKEINTRESOURCE(nID);
pTTT->hinst = AfxGetResourceHandle();
return TRUE;
*********************************************
Now instead of taking the tooltiptext from the ResourceStringtable,I want to provide my own strings(decided upon,on which language the tooltip text should appear.This language string, I will be getting from a part of my program which Iam not showing here.)
Will be getting this language dependent string in "T_String" type where "T_String" is of type
typedef std::wstring T_String;
I tried to provide my string as follows.
T_String test;//(string which I get from a part of my Program ,depending on language).
pTTT->lpszText =const_cast<lptstr>(test).
It compiled,but the tooltip displayed was a junk value.
Is this(pTTT->lpszText),the right place to give my string in the "TOOLTIPTEXT" structure or should I use the "szText" member.
If so,How would I make the necessary conversions.
Would be nice if someone could tell me with a code snippet..
Thanks..
|
|
|
|