|
How doesn't it work? What is the call to GetParent() doing?
I would think that code would be in the actual dialog class.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
It looks like its failing on the ASSERT. I found this code and I'm not sure why the call to GetParent() is there, I thought maybe it needed a window handle pointer.
The filename string can be obtained after the dlg. closes. But I want to look at what the user has in the file name field and the chosen ext. and make the filename ext change as the ext. changes from the combo field. It seems like this should be a std. way for the dlg to work (MS Office apps work this way).
|
|
|
|
|
If you derived a class from CFileDialog, you
should be able to do something like this:
void CMyFileDialog::OnTypeChange()
{
CWnd *fileNameBox = GetDlgItem(edt1);
ASSERT_VALID(fileNameBox);
CString fileName;
fileNameBox->GetWindowText(fileName);
}
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hi Mark,
Thanks for your help. Just to follow up on this, it turns out you need the ptr. to GetParent() because the "CFileDialog is actually a child of the real dialog" according to - http://msdn.microsoft.com/en-us/magazine/cc301466.aspx.
So you need something like this to access the file name and type, modify it to the set type and display it:
void CMyFileDialog::OnTypeChange()
{
CFileDialog::OnTypeChange(); // Base class
CString fileName, ext;
GetParent()->GetDlgItemText(cmb13, fileName); // Get file name
GetParent()->GetDlgItemText(cmb1, ext); // Get extension
int i;
if ((i = fileName.ReverseFind('.')) != -1) {
fileName.Truncate(i);
if ((i = ext.ReverseFind('.')) != -1) {
ext.Truncate(i + 4);
fileName += "." + ext.Right(3);
}
}
GetParent()->SetDlgItemText(cmb13, fileName); // Get file name
return;
}
Thanks again,
Darryl
|
|
|
|
|
Darryl Bryk wrote: it turns out you need the ptr. to GetParent() because the "CFileDialog is actually a child of the real dialog"
Good to know!
Thanks for the update!
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Is there a way to do <title>?
|
|
|
|
|
|
|
I am trying to read two cities with their Lat and Longs from a text file so I can compute the distance between them.
the text file format is San Francisco 37:47:48n 122:24:57n Honolulu 21:16:25n 157:49:13w
can anyone tell me how I can read from text file so I can do the math
or does anyone have a similar example out there that they have done.
Thanks
|
|
|
|
|
Split the string into words by looking for spaces, and put this into an array of char * s. Then look to see if the first character of each word is a number or not and if so, remove the end character and split it up by the colons; then simply use atoi() to convert these into numbers and do whatever you want with them
Hope this helps,
--Perspx
"The Blue Screen of Death, also known as The Blue Screen of Doom, the "Blue Screen of Fun", "Phatul Exception: The WRECKening" and "Windows Vista", is a multi award-winning game first developed in 1995 by Microsoft" - Uncyclopedia
Introduction to Object-Oriented JavaScript
|
|
|
|
|
Thanks for the quick reply
what would the code look like to do that, the array I know but atoi() I don't.
what would you do?
Thanks
|
|
|
|
|
After some dabbling in my C IDE, I have come up with this to split the string up and put the lat/longitudes in an array:
char text[] = "San Francisco 37:47:48n 122:24:57n Honolulu 21:16:25n 157:49:13w";
char *input = (char *)text;
char **data = NULL;
char *ptr = NULL;
int i, datacount=0, curr=0, len;
for(i=0;i<(strlen(input)+1);++i) {
if(input[i]==' '||input[i] == '\0') {
len = (i-curr)-1;
ptr = input+curr;
if((ptr[0]>('0'-1))&&(ptr[0]<('9'+1)))
{
datacount++;
data = realloc(data, (datacount+1)*sizeof(char *));
data[datacount]=(char *)malloc(len);
strncpy(data[datacount], input+curr, len);
data[datacount][len]='\0';
}
curr = (i+1);
}
}
You can do something similar to split the numbers with the colons - the atoi() reference is here.
Hope this helps!
--Perspx
"The Blue Screen of Death, also known as The Blue Screen of Doom, the "Blue Screen of Fun", "Phatul Exception: The WRECKening" and "Windows Vista", is a multi award-winning game first developed in 1995 by Microsoft" - Uncyclopedia
Introduction to Object-Oriented JavaScript
|
|
|
|
|
Thank you I really appreciate the assistance, I didn't know there where people out there so willing to help.
Thank you! Thank you! Thank you!
|
|
|
|
|
No probs
Regards,
--Perspx
"The Blue Screen of Death, also known as The Blue Screen of Doom, the "Blue Screen of Fun", "Phatul Exception: The WRECKening" and "Windows Vista", is a multi award-winning game first developed in 1995 by Microsoft" - Uncyclopedia
Introduction to Object-Oriented JavaScript
|
|
|
|
|
2 questions
what do I need to do to finish this?
how would I pull this info if it was in a text file?
Thanks
|
|
|
|
|
- You need to do whatever you need to do with the lat/longitudes stored
- You would use the
ReadFile() function (documentation here).
Hope this helps,
--Perspx
"The Blue Screen of Death, also known as The Blue Screen of Doom, the "Blue Screen of Fun", "Phatul Exception: The WRECKening" and "Windows Vista", is a multi award-winning game first developed in 1995 by Microsoft" - Uncyclopedia
Introduction to Object-Oriented JavaScript
|
|
|
|
|
I am two blocked
I have an error "invalid conversion from void to char" on the:
data = realloc (data, (datacount +1)*size of (char*));
|
|
|
|
|
Cast it to a char** by changing that line to:
data = (char **)realloc (data, (datacount +1)*size of (char*));
That should sort it
Regards,
--Perspx
"The Blue Screen of Death, also known as The Blue Screen of Doom, the "Blue Screen of Fun", "Phatul Exception: The WRECKening" and "Windows Vista", is a multi award-winning game first developed in 1995 by Microsoft" - Uncyclopedia
Introduction to Object-Oriented JavaScript
|
|
|
|
|
Hi,
I have an application that I have embedded an OpenGL scene into a CScrollView, the problem I am having is when I move the scroll bar, the OpenGL Scene doesnt move with it. What am I missing to cause the scene to move with the scroll bar movements. I think I am missing an openGL call that links the windows scrollbar position to the OpenGL Position.
Any help would be greatly appreciated. Thanks in advance!
|
|
|
|
|
Hi,
I have a MDI application in VC++ 2005. Once I linked to new common Vista controls 6.0, third party buttons stopped working and its not supported anymore, so I have to switch these buttons to windows buttons. I have a class MYGraph derived from ThirdPartyGraph, and in CMyGraph::BuildPage(), I used CButton::Create method to dynamically create the buttons... I do come up with an error from third party which basically says bad ChildProcessControl... If I apply this same concept on simple Dialog based application, I have no problem.... Does anyone have an idea how to get wround this since the buttons I am trying to create aill be on a frame which is derived from third party?
Thanks
|
|
|
|
|
So I'm using the CMFCOutlookBarTabCtrl control from the VC Feature pack. In it, I'm putting a couple of custom controls. Problem is that the controls aren't being redraw properly: after resizing the CMFCOutlookBarTabCtrl, they are white. I have trace messages in my OnPaint I know that that function is called. I watch the messages with Spy++, all goes well. When I put another control in the CMFCOutlookBarTabCtrl it works fine (standard windows control like a button but also for other custom controls). When I show the custom control outside of the CMFCOutlookBarTabCtrl it works fine, too. So it looks like my control is being drawn over after its WM_PAINT handler has been called. Oh, when I put in a WM_MOUSEMOVE handler and do an Invalidate() in there, it works too. Anyone who is still with me after this description and who has an idea on how I could go about debugging this? Thanks.
|
|
|
|
|
Hi every one!
Is this a safe way to define key structure.If not then how'd it be safer
Thanks!
typedef struct _key
{
struct p1
{
struct p2
{
unsigned char a1[128];
unsigned char a2[8];
};
unsigned char b1[64];
unsigned char b2[64];
unsigned char b3[128];
unsigned char b4[64];
unsigned char b5[64];
unsigned char b6[64];
};
}
KEY;
|
|
|
|
|
What do you mean safe? Type safe, thread safe, OO safe, exception safe or just proof against terrorist bombing?
"The secret of happiness is freedom, and the secret of freedom, courage."
Thucydides (B.C. 460-400)
|
|
|
|
|
I mean safe by the fact that these arrays are big and many, or would it be a problem in memory ?
Also is it Thread safe?.
And is it OO safe because i will use it in a class
Thanks!
|
|
|
|
|
It wouldn't be a problem in memory, it will just use up quite a bit of it And being thread safe is only a problem if you have two or more threads trying to access the same bit of data at the same time. It is perfectly OO-safe unless it is a private/protected member and you are trying to access it from outside the class
Hope this helps,
--Perspx
"The Blue Screen of Death, also known as The Blue Screen of Doom, the "Blue Screen of Fun", "Phatul Exception: The WRECKening" and "Windows Vista", is a multi award-winning game first developed in 1995 by Microsoft" - Uncyclopedia
Introduction to Object-Oriented JavaScript
|
|
|
|