|
you shuold use the Sleep() function.
it takes 1 parameter(DWORD) which is the time to sleep,in miliseconds.
Regards,
Eli
|
|
|
|
|
I have set a dialog box on the toolbar. There is a Editbox with a Button on the dialog box. The Editbox supposed to get a value from the user and once the Button is pressed, the value will be transfered into a variable in CView. I added a CDialogBar variable m_pointDistro but since there is no class for the dialogbox, I dont know how to add this variable.
Editbox ID is IDC_NPOINTS. I selected new class of the Dialogbox as CView but I was forbided to do that. So the Dialogbox ended up as no class. I chose the Button and added a function called OnDistro().
void CProgramView::Distro() {
CMainFrame* pMainFrame = (CMainFrame*)GetParentFrame();
CEdit* pArray = (CEdit*)(pMainFrame->m_pointDistro.GetDlgItem(IDC_NPOINTS));
.
.
}
1) If I accidentally made the dialogbar has no class, how can i revert back?
2) The coding I used to get value from the dialogbox couldnt work. How can I fix it?
Thanks,
|
|
|
|
|
i want to generate some random numbers,
but with in a limit ( i.e i want to generate the random numbers with in 50) how can i do it by using the rand() ?
Thanks in advance
Ninety-eight percent of the thrill comes from knowing that the thing you designed works, and works almost the way you expected it would. If that happens, part of you is in that machine.
|
|
|
|
|
Try
srand( (unsigned)time( NULL ) );
for( int i = 0; i < 20; i++ )
{
int n = int (50 * ( (double) rand() / RAND_MAX ));
cout << n << "\n";
}
Typical output:
4
48
10
16
27
12
10
27
45
39
24
15
7
3
12
22
24
25
19
28
Kevin
|
|
|
|
|
Kevin McFarlane wrote:
int n = int (50 * ( (double) rand() / RAND_MAX ));
Aaaah, finally someone else who knows the best way to use rand() . Most people just use the % operator, but statistically, using your approach leads to more randomness, as the rand() algorithm has the property that the higher-order bits are more random than the lower order bits.
Or did you just guess?
Either way, well done
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
I just guessed. In fact I'd thought that eli15021979's % method was slicker! But you learn something new every day.
Kevin
|
|
|
|
|
Kevin McFarlane wrote:
In fact I'd thought that eli15021979's % method was slicker!
It is And it will be good enough most of the time, but technically you can do better without having to change an awful lot . In fact, if you use the method you originally posted, modifying it to work with floating-point numbers is relatively trivial - a lot easier than converting one using the modulo operator, since the modulo operator doesn't work for floating-point numbers, well not in C++ at least...
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Hi,
try this:
srand( (unsigned)time( NULL ));
int num = rand()%50;
Regards,
Eli
|
|
|
|
|
yeah great...thankyou
Ninety-eight percent of the thrill comes from knowing that the thing you designed works, and works almost the way you expected it would. If that happens, part of you is in that machine.
|
|
|
|
|
Of course! Much simpler than mine!
Kevin
|
|
|
|
|
use the modulo (%)
//0 to 49
int nNumber = (rand() % 50);
//1 to 50
int nNumber between1and50 = 1 + (rand() % 50);
|
|
|
|
|
renjith_sree wrote:
i want to generate some random numbers,
Unfortunately this is impossible using a computer algorithm. The best you can hope for is a pseudo-random number.
renjith_sree wrote:
but with in a limit ( i.e i want to generate the random numbers with in 50)...
Is 50 the upper limit or the lower limit?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Another issue of mine, I have X devices connected to the computer when my application starts..
I call a function which retrieves a string that represents an identifier for all devices connected. The string is then parsed and I populate a list box with the results. USB-0, USB-1, etc.
I would like to be able to create a dynamic array for each device that is connected.
Any ideas how to do this? Samples?
Thanks again
|
|
|
|
|
use STL ( or MFC collections ).
std::vector< CString > myStringVector;
myStringVector.push_back( someString );
or
CStringArray myStringArray;
myStringArray.Add( someString );
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
Well I am kind of getting it.
So let's say I have three devices, which are detected at runtime.
I want to have three arrays generated... how can multiple arrays be generated with unique names?
How can I cycle through some unique array names?
|
|
|
|
|
Use an array of arrays...
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Or you could derive a custom class from CObject of whatever you want to put in there. For instance, I have this class in my current project:
class CBitmapObject : public CObject {<br />
public:<br />
CBitmapObject (BYTE newColor, int newCount) { <br />
color = newColor;<br />
count = newCount;<br />
}<br />
~CBitmapObject(void);<br />
BYTE getColor () { return color; }<br />
int getCount () { return count; }<br />
private:<br />
BYTE color;<br />
int count;<br />
};
then I have a CObList named m_bitmapDataArray that adds items like this:
m_bitmapDataArray->AddHead(new CBitmapObject(currentColor, count));
You can add things at the end (Tail) or anywhere in between.
Later I use this code to pull objects off the end and perform the proper functions on them like this:
CBitmapObject *next;<br />
next = (CBitmapObject*) m_bitmapDataArray->RemoveTail();
You'll get an error because the RemoveTail() returns a CObject but my class is called CBitmapObject so you can recast CObject because CBitmapObject inherits CObject things.
I can create a CObList or CObArray collection of these classes derived from CObject. The CObArray works just like a regular array, with indices. CObList is more like an advanced doubly-linked list. You can add/remove from the head of tail of the list, or insert new objects at a particular location, etc...
If you can rearrange your project if it's more convenient to make a class derived from CObject to describe your entire device or however you care to use it, it might help out a lot. Hope this helps, good luck.
|
|
|
|
|
Thanks for all the peep's taking time to look:
CInternetSession session("FTP");
CFtpConnection* pConn=NULL;
pConn = session.GetFtpConnection(server,username,password,port,1);
pConn->GetFile("c:/data/","c:/data1/",TRUE,FILE_ATTRIBUTE_DIRECTORY);
As soon as this is run:
-----------------------------------------
Debug Assertion Failed!
File: inet.cpp
Line: 1731
-----------------------------------------
The Line reads something like this:
ASSERT(!(dwAttributes & FILE_ATTRIBUTE_DIRECTORY));
WHAT THE HECK?!
How am I supposed to download a directory??!?!?!?!?!?!?!!?
Everytime I include FILE_ATTRIBUTE_DIRECTORY it "Assert Fails" there!?
ANY HELP PLEASE PLEASE PLEASE!
|
|
|
|
|
Sorry:
*BUMP* Please take the time and help me if you can... I will love you!
|
|
|
|
|
#pragma once
template<class t="">
class Complex1
{
public:
Complex1(t _re, t _im) : re(_re), im(_im)
{
}
private:
t re, im;
};
/////////////////////////////////////////////////
#include "stdafx.h"
#include "complex1.h"
int _tmain(int argc, _TCHAR* argv[])
{
Complex1 <double> d1;
return 0;
}
error C2512: 'Complex1<t>' : no appropriate default constructor
available
with
[
t=double
]
|
|
|
|
|
When you write Complex1<double> d1; the compiler looks for a default constructor, which is a constructor with either no parameters, or parameters all with default values. The class Complex1 has no such constructor, so the declaration of d1 is illegal. You need to specify two values to be passed to the two-parameter constructor:
Complex1<double> d1(0,0);
--Mike--
LINKS~! Ericahist updated! | 1ClickPicGrabber | CP SearchBar v2.0.2 | C++ Forum FAQ
Strange things are afoot at the U+004B U+20DD
|
|
|
|
|
Mike,
Tried your advice,
Complex1<double> d1(0,0);
Also tried
Complex1<double, double=""> d1(0,0);
still doesn't compile...!!!!!
(7): error C2226: syntax error : unexpected type 't'
(7): error C2334: unexpected token(s) preceding ':'; skipping apparent function body
(9): error C2661: 'Complex1<t>::__ctor' : no overloaded function takes 2 arguments
with
[
t=double
]
and
[
t=double
]
|
|
|
|
|
Im kinda new at this stuff, (so keep that in mind) but I think I see a couple of problems.
template sould be followed by (class t)
That is where you declare the new identifier type "t ". So that the compiler knows that this will be an acceptable data type when it sees it.
Second thing I see, is that you dont have much of a constructor for your class.
You declared a function within the Complex1 class. You named it Complex. But I dont see anywhere that you have defined what the function will do. I beleive the class is also unusable because the variables within it (t re , and t im ) are uninitialized. (Again, no constructor.)
Are you trying to do something like this?
<br />
template<class t><br />
Complex1<br />
{<br />
public:<br />
Complex1();<br />
void Complex(t re,t im);<br />
<br />
private:<br />
t<br />
re,<br />
im;<br />
};<br />
<br />
<br />
#includes...<br />
<br />
Complex1::Complex1()<br />
{<br />
re = 0;
im = 0;
}<br />
<br />
void Complex1::Complex(t r, t i)<br />
{<br />
t re = t r;<br />
t im = t i;<br />
}<br />
<br />
void main()<br />
{<br />
.<br />
.stuff<br />
.<br />
}
I hope this helps.
Travis
|
|
|
|
|
Hi,
Have you managed to solve this problem as yet. If not,
here is your solution....
//////////////////////////////////////////////
//complex1.h
#pragma once
template <class t>
class Complex1
{
public:
Complex1(t _re, t _im) : re(_re), im(_im){}
private:
t re, im;
};
//end of file
and ...
///////////////////////////////
//main.cpp
#include "stdafx.h"
#include "complex1.h"
int _tmain(int argc, _TCHAR* argv[])
{
Complex1 <double>d1(1, 0);
return 0;
}
// end of file
Regards,
David
|
|
|
|
|
Hello,
I'm a newbie to this forum. I tried to use search engine but with no help. I hope my question won't annoy you.
I'm trying to write a small database using MS Visual Studio 6 using C++.
My problem is following:
I need my database to have data entered in editboxes and checkboxes; -> this is the part i can deal with -> saving using MFC Serialization
My problems is:
- I need to have bitmaps i can draw on with colours and add some text on it
- save it to one file together with other data from editboxes, checkboxes
If anybody could help me with some sample source code, or a tutorial about my problem.
Thank you in advance for help.
Sorry for my spelling/gramar I'm not a native English speaking person.
|
|
|
|