|
There are several ways to do this. From what level do you want to get it (app, doc, mainframe, etc.) ?
|
|
|
|
|
|
See CDocument::GetFirstViewPosition() and CDocument::GetNextView().
/ravi
"There is always one more bug..."
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
Hello,
This question is in detail considered in article Q108587 HOWTO: Get Current CDocument or CView from Anywhere Microsoft Knowledge Base!
Best regards,
Eugene Pustovoyt
Sonork ID 100.10002:Yaumen
|
|
|
|
|
Hi,
I have developed a TDI filter driver(build in *.sys) in Win2000,but i haven't got the .inf file,so it is no use and it's urgent to use it for me...
please help me!!!
Thanks a lot for all replies
|
|
|
|
|
If you wrote a device driver, I guess you should write your inf for it too huh?
Nish
p.s. You are asking like, "I can multiply 34567835 with 358454, but can someone tell me how to multiply 5 with 8"
Sonork ID 100.9786 voidmain
www.busterboy.org
If you don't find me on CP, I'll be at Bob's HungOut
|
|
|
|
|
HI,
I am using DataGrid control in my MFC app. One of the requirements is to loop through each selected record, pick the third column value and update the database if any item has changed.
Surprisingly most of the samples listed in MSDN show the VB examples. I am interested in a C++ sample that manipulates the selected rows, gets count of # of selected rows, etc. Can anyone point me to an in-depth usage of DataGrid Sample code. Also there are lot of LPDISPATCH routines like "LPDISPATCH GetSelBookmarks()" that can further call more functions. However I have no clue of what interface they support.
Nagendra
|
|
|
|
|
see sample (using ADO)
http://www.codeproject.com/useritems/msdatagrid.asp
or (OLE DB)
http://www.codeproject.com/useritems/msdatagridoledb.asp
|
|
|
|
|
File this one under stupid compiler tricks:
(there's apparently no html allowed...)
http://www.BinaryUprising.com/images/StupidError.JPG
rriiiiight.....
~Cam Desautels
|
|
|
|
|
And I thought "I" had frustrating error messages! Why did that happen, do ya know?
|
|
|
|
|
Well, (keep in mind I'm pretty new to C++), I was screwing around in Visual Studio trying to learn something (anything). So, I decided to use AppWizard to make a new App, base-ing the view on CTreeView.
This is all good and well...so then I decided I'd add something to my fancy new tree. But I needed a pointer to it. So, I did the following:
GetTreeCtrl()->InsertItem("Hello world")
And that worked just fine. I did that few times for different items, making some items below others, I changed the background color - I was just learning how the CTreeCtrl works. Anyway, at some point I thought, "Hey, if just stored the address of the Tree in a pointer, I'd save system resources (not to mention typing), by not having to call the GetTreeCtrl() function everytime." So, I wrote the following:
CTreeCtrl *pOurTree = GetTreeCtrl();
and it said the following to me:
cannot convert from 'class CTreeCtrl' to 'class CTreeCtrl *'
Confused and curious, I said "ok, what the hell, lets see what happens". Removed the asterisk, and compiled again, simply to see what it would say. And that's how I got the error . Anyway, I would be curious how to do it correctly.
~Cam Desautels (BinaryUprising.com)
|
|
|
|
|
What's weirder is that "GetTreeCtrl()->InsertItem("Hello world");" even worked. GetTreeCtrl() returns a CTreeCtrl& not a CTreeCtrl*.
--Mike--
http://home.inreach.com/mdunn/
"Not our fault we are intellectually superior to the rest of the office." -- Paul Watson in the Lounge, 12/12/2001
Sonork - 100.10414 AcidHelm
|
|
|
|
|
He, he, he...it's the magic touch of stupidity. You'd be surprized how many ridiculous programming stunts I pull . It's been a long time since I've programmed in anything that wasn't for the web...I'm very rusty....
~Cam Desautels (BinaryUprising.com)
|
|
|
|
|
I'm very new to C++ and need to build a program that performs simple multiplication in edit boxes, there are three allowing the user to enter numerals in 2 and the result being displayed in the third. My problem is, I cannot for the life of me figure out how to correct a mistake I must have made. I keep getting the errors:"error C2440: '=' : cannot convert from 'char [1]' to 'float'". I assume I am supposed to convert somehow the inputs from char to float. Any assistance would be appreciated. I was told by someone something about atoi atof, and have searched for these things in my MSDN to no avail. Am I maybe declaring my variables wrong?
|
|
|
|
|
First of all, if you defined your edit boxes as variables rather than controls, you were then able to define them as numbers instead of strings. You can delete them and recreate them as such, if you like. If you created them as controls, then you'd need to get their text with GetWindowText, and you will need to convert a string to a number.
Every MSDN ever will cover atoi and atof, I dunno what the problem is there - even if I tick 'search titles only' I get 5 matches. atoi converts Ascii TO Integer, and atof converts Ascii TO Floating point (float or double ).
Finally, if you're using variables directly for your values, you need to remember to call UpdateData() to update those values before using them, and UpdateData(false) to pass the value back in for the result. If you were using a string, or using SetWindowText in a control, CString has a method called format that takes the same arguements as sprintf, namely you can get a string representation of an integer, i and a float, f like this:
CString s;
s.Format("My int = %d, my float = %f, my float with 2 decimal points = %.2f", i, f, f);
I hope that helps.
Christian
After all, there's nothing wrong with an elite as long as I'm allowed to be part of it!! - Mike Burston Oct 23, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
If you didn't follow what the last guy said, I'll try to make it a little simpler. I'm a newbie myself, but I could write the program you're writing . First off, about atoi atof, these are C/C++ library functions. Basically that means they are prewritten functions that you can call from your program if you so please. They, respectively, convert an ASCII char(acter) to int(eger), or an ASCII char(acter) to a float(ing point number). But screw those for now
When you wrote your program, odds are you made a dialog in the resource editor, then you threw some edit boxes onto it. Next you ran ClassWizard to assign member variables to them. But the problem is that you assigned the wrong type of variables to them. So, to fix all this, open Visual Studio, and hit Ctrl+W. Click the "member variables" tab. Now there should be a list. On the left you will see them names of your edit boxes. Select one of your edit boxes, and click "Delete Variable". Then click "Add Variable" choose the name you would like for the variable (would be best to use the same name you used before so you don't have to recode), make sure "Value" is selected in the next box down, and then make sure "int" is selected in the bottom box. Now press 'Ok'. Repeat this process for all three of your edit boxes, and you should be all set.
----
I need to append something to this. When I first started programming in VC++ I made a program like that, and annoyed the hell out of myself because all of the code seemed right, and I got no errors, but it would never display! In case this is happening to you, here's the explanation. The data typed in to an edit box isn't actually stored directly into the member variable we supply for that purpose. We have to call the UpdateData() function to get what's in the window and put it into the variable. UpdateData takes one parameter, either TRUE or FALSE; UpdateData(TRUE) takes the data that is in the window, and puts it into the variables. UpdateData(FALSE) does the exact opposite, it updates the window. So, when your user clicks the multiply button, we need to do something like this:
void CMyProgDlg::OnMultiply()
{
// TODO: Add your control notification handler code
UpdateData(TRUE); //Puts data in member variables
m_Sum = m_NumOne * m_NumTwo; //multiplies
UpdateData(FALSE); //Puts data to screen
}
Anyway, just hoping to say you a headache. I just spent two minutes or so throwing together a program that doe exactly what you want yours to do. If you find yourself needing more help, download it from this link.
~Cam Desautels (www.BinaryUprising.com), always welcome to help out the new ones
|
|
|
|
|
I am taking a little course in C++ and my instructor tols me that my problem has to do with the way I am declaring my variables. I used the class wizard and made the variables as catagory Value, and Variable type float. I made sure my Updatedata(); commands were right, and I still get these errors. Since we haven't covered the atoi/atof topics yet I assume the problem is how the variables or functions are declared. This is pretty stressful, considering I'd like to get this right so I can be where you are and help someone later on. Is there anything else I might be overlooking? I really appreciate your assistance. Thanks.
|
|
|
|
|
Ok, please re-read my reply if you haven't seen what I appended to it. Another thing I would recommend doing is in the resource editor (where you can edit your dialog box), right click your edit boxes, click the 'Styles' tab, and check 'Number'. Then only numbers can be typed into the box. That's no explanation for your compiling errors, but it will save you time later, so you won't have to write error-checking routines to make sure your user typed in a number. If all else fails, make sure to check out the sample prog I linked to in my last post.
~Cam Desautels
|
|
|
|
|
Cam, I really appreciate all your assistance. I hoipe to repay you someday somehow. I downloaded the file you attatched and after it downloaded I tried unzipping it and received the error message "file is multipart or corrupt. Thank you for the attempt.
|
|
|
|
|
drat...sorry about that. I'm uploading the corrected version of the file right now. It ought to be at the same exact location by the time you recieve this, so just follow the original link if you'd like to download it.
~Cam Desautels (BinaryUprising.com)
|
|
|
|
|
If you made the variables of type float, then you need to make sure that only numbers are being entered into the edit boxes. Sadly, if you click the option in the edit box properties to make the value a number, you will only get int's, the decimal point will also be supressed.
You really should consider posting some code when asking for help. I suspect if I saw the code I'd probably know what you were doing wrong.
Christian
After all, there's nothing wrong with an elite as long as I'm allowed to be part of it!! - Mike Burston Oct 23, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
Christian, Thanks an aweful lot for helping me. I REALLY appreciate it.
|
|
|
|
|
If you made the variables of type float, then you need to make sure that only numbers are being entered into the edit boxes. Sadly, if you click the option in the edit box properties to make the value a number, you will only get int's, the decimal point will also be supressed. However, if the values are ALL set to be floats, there is no char to float conversion happening at ALL, so I doubt you've got that bit right, or if you have, the problem is elsewhere and you should be posting the code where it crashes.
You really should consider posting some code when asking for help. I suspect if I saw the code I'd probably know what you were doing wrong.
Christian
After all, there's nothing wrong with an elite as long as I'm allowed to be part of it!! - Mike Burston Oct 23, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
True, true, sorry about that...int math was simpler...
~Cam Desautels (BinaryUprising.com)
|
|
|
|
|
You might want to have a look at this little article. It is a set of classes built to take numeric input from edit boxes and it handles a lot of those messy details for you. There are facilities to use sliders also but you don't have to.
I hope this helps.
|
|
|
|
|