|
Thanks Abyss,
But I still dont get the idea. Let me explain the task I need the program to do.
I have a coordinate display in CView (I use OnDraw to draw out the x-axis and y-axis) that allows user to use mouse pointer to pick out coordinate points on CView. Each points will be collected into an array (CArray). I made a struct that contents two elements x & y to store x and y coordinates.
Next, I have a dialog to list out the points. The dialog can be accessed from the menu.
I am new to VC++ but I have b/ground in C. How can use MFC to ease my coding?
1) Must I use struct so store x & y in CArray? Is there another way?
2) How can I use the CArray in my listing dialog? I tried to declare public variables in CView (CArray<mystruct,mystruct> myarray) but it doesnt allow me to declare.
Thanks a million.
|
|
|
|
|
In my opinion David (see bellow) proposed a simpler approach so in the CView member function where you construct the dialog pass the array to you dialog constructor. I recommend to use CPoint instead of your structure which stores x,y. The member function of the CView can be called via MFC message command.
1) Use CPoint in CArray to store points.
2) It is not a good idea to create public members in any class.
|
|
|
|
|
When constructing the dialog from within one of the view's methods, pass the address of the CArray object. Something like:
CMyDialog dlg(&array); or
CMyDialog dlg;
dlg.m_pArray = &array;
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
&array is the array from my view? It is from different class. Myarray is from CView however CDialog is a different class. I need to know how to use myarray in CDialog. THanks.
|
|
|
|
|
Depending on how you want to pass the array from the view to the dialog, you'll either need to create a new constructor for the dialog, or make one of its member variables public so that the view can assign a value to it directly.
In either case, the dialog will have a CArray* as a member variable. Once it has been assigned a value, it can be used as you like.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
I have a struct under CDoc
struct MyStruct {
float x;
float y;
};
I use it for CArray<mystruct,mystruct>. I dont know how to define a public variable with struct.
Thanks
|
|
|
|
|
You need to put the struct in a .h file by itself. Then each of the .cpp or .h files that need it can simply #include it.
mystruct.h:
struct MyStruct
{
float x;
float y;
};
typedef CArray<MyStruct*, MyStruct*> MyStructArray; Now the view and the dialog can each have a MyStructArray member variable.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
There are quite a number of errors:
typedef CArray<codata*, codata*=""> MyStructArray;
error C2143: syntax error : missing ';' before '<'
So, after I construct mystruct.h, I can add Add Member Variable (public) for Variable Type (MyStructArray)?
Besides, I always get error on CDoc* GetDocument(); in my CView.h.
|
|
|
|
|
jw81 wrote:
typedef CArray MyStructArray;
error C2143: syntax error : missing ';' before '<'
CArray requires afxtempl.h to be included. I would suggest doing so in the project's stdafx.h file.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Hi
The CDoc* GetDocument(); error is not solved yet. It only happens when I included my CView.h into the cpp.
Thanks
|
|
|
|
|
What file are you including CView.h in? I would hazard a guess that you also need to include the CDoc.h file right above that statement.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
|
Cant solve the CDoc error.
|
|
|
|
|
Hi,
How to convert string to Hexadecimal value and vice versa?
thanx
thanx
|
|
|
|
|
as i don't really understand your question, my answer is probably off-topic... if so, please reformulate better.
did you try sscanf() with %X in the format ?
CString str = <font color=#808080>"5F6A"</font>;
<font color=#0000FF>int</font> i = 0;
sscanf((LPCTSTR)str, <font color=#808080>"%X"</font>, &i);
ASSERT(i == 0x5F6A);
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
Hi All,
How to generate xml file from vc++ .
|
|
|
|
|
Hi All,
How to generate xml file from vc++ .
|
|
|
|
|
|
does Windows support raw sockets like LINUX? if yes,.. suggest some reading links..
if no, how is Winpcap implented then
|
|
|
|
|
I know for sure that raw sockets are available on Windows 2000 and above.
Have you tried MSDN[^]
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fruity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Walliams (Little Britain)
|
|
|
|
|
Hi all,
I want to create a function that returns for each
element in something...
For example like an enum and callback function(for example:
EnumWindows and etc.) for each section in an INI file I want
my function call a callback function...OK?
And I have another question:
What is SDK?(Any article for beginners?)
Best Wishes,
Thanks.
|
|
|
|
|
u can refer to the site microsoft.com for details on SDK...
i dont know the exact link....u vil have to search on the home page
|
|
|
|
|
javad_2005 wrote:
What is SDK?(Any article for beginners?)
SDK stands for Software Development Kit. Any manufacturer can provide SDKs for its products. They consist of libraries of functions that perform particular tasks. You can use them in your own applications.
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fruity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Walliams (Little Britain)
|
|
|
|
|
Hi,
Am a systems programmer.
I just wanted to know a sample code in c/c++ which can be compiled in vc++ environment.
The code sould be able to accept just the DSN username and password and should be able to connect to the database.
And the possible APIs that can be used for result sets,
using and executing queries.
|
|
|
|
|
First create a working DSN using the ODBC applet in Control Panel. Then use AppWizard to create a new SDI (or MDI) project. When asked for database support, select the DSN that you just created. All the right files and classes will be created for you.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|