|
|
Hi,
The CListBox::OnNcCalcSize() is not called when the list box does not have vertical scrollbar in its style.
What could be wrong?
I need to customize the border of listbox, but vertical scrollbar cannot be allowed.
Waiting for replies...
Thank you.
- NS -
|
|
|
|
|
In a variable out of the class, we say like
int a[10]={1,2,3,4,..10}.. right?
but we cannot do the same inside the class declaration. ie
class test
{
<code>int a[10]={1,2,3,4,..10}
}
but in the consturctor we cannot say
test()
{
a={1,2,3,4..10};
}
.. how to go about here?
VuNic
|
|
|
|
|
array initialization is not possipble at the time of class declaration because memory for class member is allocat at the time object declaration.
so only in contructor you can initialize as follows :
a[]={1,2,3,...10};
Bankey Khandelwal
Software Engineer
|
|
|
|
|
you still cannot do that
error C2059: syntax error : ']'
VuNic
|
|
|
|
|
because the initialisation is not made as the same time as the declaration (in a class), you cannot use such a thing.
i advise you to do it like this :
<font color=blue>class</font> test {
<font color=blue>int</font> a[10];
<font color=blue>public</font>:
test();
};
<code>--------------------</code>
test::test() {
a[0] = 1;
a[1] = 2;
<font color=green>
a[9] = 10;
}
now, if you have a very long list of values, then you can do the following as better practice :
<font color=blue>class</font> test {
<font color=blue>int</font> a[100];
<font color=blue>public</font>:
test();
};
<code>--------------------</code>
test::test() {
<font color=blue>int</font> tab[100] = {<font color=gray>...val array...</font>};
<font color=blue>for</font> (<font color=blue>int</font> i = 0; i < 100; i++) {
<font color=blue>this</font>->a[i] = tab[i];
}
}
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VCalc 3.0 soon...]
|
|
|
|
|
how about good old memcopy?
its faster too.
|
|
|
|
|
yeah, but what i suggested was to have a local array of the valued into the constructor...
then yes, he could memcpy() the array into this->a
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VCalc 3.0 soon...]
|
|
|
|
|
toxcct wrote: yeah, but what i suggested was to have a local array of the valued into the constructor...then yes, he could memcpy() the array into this->a
yes, that is what i meant.
|
|
|
|
|
hmm.. but do you find OOP a bit hand cuffed here?
VuNic
|
|
|
|
|
I dont think its anything to do with OOP, its just the way C++ has been defined. And if you are using C++ then you have to design certain things that suits best with the language.
|
|
|
|
|
oh, i'm thinking to something, but not sure about it ; maybe you can confirm my thought:
test::test() : a({1, 2, ..., 10}) {
}
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VCalc 3.0 soon...]
|
|
|
|
|
no,
I've tried it and got a compilation error C2536
would be nice if it could be done this way
codito ergo sum
|
|
|
|
|
oops, just checking your reply. No tox didn't work
VuNic
|
|
|
|
|
No Other way sir?
VuNic
|
|
|
|
|
VuNic wrote: No Other way sir ?
what don't you like in it ?
it's simple enough...
otherwise, you could always copy the datas one by one, but wow, you should be very courageous !!
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VCalc 3.0 soon...]
|
|
|
|
|
VuNic
|
|
|
|
|
VuNic wrote: .. how to go about here?
If you can use static members:
class test
{
public:
static int a[10];
};
int test::a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
"The greatest good you can do for another is not just to share your riches but to reveal to him his own." - Benjamin Disraeli
|
|
|
|
|
DavidCrow wrote: If you can use static members:
but this implies only one a member shared between all the test objects...
all depends on what he need.
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VCalc 3.0 soon...]
|
|
|
|
|
You can't always eat your cake and have it too.
"The greatest good you can do for another is not just to share your riches but to reveal to him his own." - Benjamin Disraeli
|
|
|
|
|
static looks good, but still i think we've got an error.
VuNic
|
|
|
|
|
error C2655: 'a' : definition or redeclaration illegal in current scope
VuNic
|
|
|
|
|
You've redefined a someplace else.
"The greatest good you can do for another is not just to share your riches but to reveal to him his own." - Benjamin Disraeli
|
|
|
|
|
No David, i points to the line
class MyClass
{
static int aDavid[3];
}
and int the main,
void main()
{
int MyClass::aDavid[3]={1,2,3};
}
Error C2655: 'aDavid' : definition or redeclaration illegal in current scope
VuNic
|
|
|
|
|
VuNic wrote: void main(){
int MyClass::aDavid[3] = {1,2,3};
}
isn't the int too much ?
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VCalc 3.0 soon...]
-- modified at 9:42 Monday 30th January, 2006
|
|
|
|