|
Yes, I did change the code around.
Someone here at work suggested I use a call to OnNotify from the base class because since I was overriding OnNotify, the call to the overridden function would handle all the other stuff I'm not handling.
I've tried using other notifications and nothing seems to work. The other thing I'm trying to do away with is cutting the umbilical cord to the default indexing of nodes by way of the rectangular region which pops up when you use the arrow keys on the keyboard.
If I don't use NM_CLICK, the only other thing I can do is the node changing states, but I think the above problem is compounding the issue I'm observing.
|
|
|
|
|
Stuck At Zero wrote: since I was overriding OnNotify, the call to the overridden function would handle all the other stuff I'm not handling
Right, but you were calling the base class BEFORE handling the
notification and afterwards as well. You should also return TRUE
when you handle a notification.
Stuck At Zero wrote: I've tried using other notifications and nothing seems to work.
It depends on what you want to do. There's a lot of more specific
notifications for a tree view control that may be more appropriate than
the generic NM_CLICK notification, which is sent when the user clicks
anywhere on the control. That notification may come BEFORE the control
changes the selected item, which will mess up your handler logic.
In your previous post, you needed to load child nodes when an item was
expanded. What else are you wanting to do?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Okay, so returning true on the part I'm handling will do the trick while the other return does so for the base class.
On the matter of NM_CLICK, I'm pretty much going straight down the list of notifications. It seems part, if not my whole problem could be that clicking on a node's checkbox does absolutely nothing with respect to where the TreeView thinks the focus is at.
The focus seems to be whatever node text is highlighted (regardless of what checkbox to a node was clicked on). Is there something I can do to remedy this cumbersome process? A user will not want to click on a node's text and then click on its checkbox for proper operation.
|
|
|
|
|
Hi All,
I want to install a driver file in setup package using Inno setup.
I tried the following code:
but it doesn't install of my drivers.
[Files]
Source: "C:\Program Files\Inno Setup 5\reg.bat" ;DestDir: "{app}"
Source: "C:\Program Files\Inno Setup 5\xx.sys"; DestDir: "{app}"
Source: "C:\Program Files\Inno Setup 5\xx.inf"; DestDir: "{app}"
[Run]
Filename: "{sys}\rundll32.exe"; Parameters: "setupapi,InstallHinfSection DefaultInstall 132 C:\Program Files\Inno Setup 5\xx.inf"; WorkingDir: {app}; Flags: 32bit;
Filename: "{app}\reg.bat"; StatusMsg: "Installing driver..."
give me some idea to for this.
Regards,
Anitha
|
|
|
|
|
AnithaSubramani wrote: Filename: "{sys}\rundll32.exe"; Parameters: "setupapi,InstallHinfSection DefaultInstall 132 C:\Program Files\Inno Setup 5\xx.inf"; WorkingDir: {app}; Flags: 32bit;
Filename: "{app}\reg.bat"; StatusMsg: "Installing driver..."
Which of the two doesn't work (or both?)
There is sufficient light for those who desire to see, and there is sufficient darkness for those of a contrary disposition.
Blaise Pascal
|
|
|
|
|
hi,
rundll32.exe doesn't work.reg.bat installing properly.
modified on Wednesday, September 10, 2008 1:21 AM
|
|
|
|
|
AnithaSubramani wrote: Parameters: "setupapi,InstallHinfSection DefaultInstall 132 C:\Program Files\Inno Setup 5\xx.inf"
"DefaultInstall 132 C:\Program Files\Inno Setup 5\xx.inf" - what are these parameters supposed to do? Why pass a file in the directory of Inno Setup as a parameter to setupapi?
There is sufficient light for those who desire to see, and there is sufficient darkness for those of a contrary disposition.
Blaise Pascal
|
|
|
|
|
Hello,
I know how to catch a left click or a right click on the header.
For the first, I write the function OnColumnClick() and for the second I know the user does a right-click on the header when wParam == 0 and pHdn->code == NM_RCLICK (function OnNotify()).
I would like to catch a message when the user left clicks on the header, but on a column not existing (not inserted). wParam == 0 and pHdn->code == NM_CLICK doesn't work.
Can you help me ?
|
|
|
|
|
You can do it like you would with any window, subclass the header and handle WM_LBUTTONUP .
|
|
|
|
|
ok thank you Mike Your solution works fine !
|
|
|
|
|
Hi!
I've initialized an Array element in the Constructor. But it shows syntax error.
TModels[1](0);
The error is:
error C2059: syntax error : '['
How to initialize an array element in the Constructor?
|
|
|
|
|
can you show your constructor please ?
T.RATHA KRISHNAN wrote: TModels[1](0);
this line makes absolutely no sense, and i don't even know what you're trying to achieve with this.
BTW, can't you just use the STL ans its containers ?
|
|
|
|
|
Thanks. I've corrected this error myself.
|
|
|
|
|
and for the benefit of everyone, will you share this with us ?
|
|
|
|
|
Oh! With Pleasure!
First I initialized the array elements like this:
TestAI::TestAI()
TModels[1](0)
, TModels[2](0)
, TModels[3](0)
{
}
and now I change it to the following:
TestAI::TestAI()
{
TModels[1] = 0;
TModels[2] = 0;
TModels[3] = 0;
}
and the errors vanished.
|
|
|
|
|
why don't you just do this :
TModel = {0};
|
|
|
|
|
Because it doesn't work?
For instance
int a[50] = {0};
Doesn't produce the result I'm expecting (it initializes only the first array element).
Am i wrong?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
CPallini wrote: Am i wrong?
you are, or the compiler is !
the standard says that such a construction (when initializing a variable at the same time than declaration) initializes every element of the array to their default value.
I'm even pretty sure Nemanja Trifunovic quoted me somewhere about that...
|
|
|
|
|
toxcct wrote: you are, or the compiler is !
Maybe the latter:
the program:
#include <iostream>
using namespace std;
void main()
{
const int N = 10;
int a[N]={7};
for (int i=0; i<N;i++)
{
cout << a[i] << endl;
}
}
the output:
7
0
0
0
0
0
0
0
0
0
The system:
Visual C++ 2008 Express Edition running on Win XP .
Eventually YOU may be wrong! (actually I'm quite confident you're right, but don't use it unless you really want surprises!)
[added]
Actually I think VS2008 cannot be so out-of-the-standard.
I suppose the standard establishing that, whenever the initialization list is too short, the remaining array
items are default-initialized (to 0 if integers).
[/added]
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
modified on Tuesday, September 9, 2008 11:53 AM
|
|
|
|
|
Same output with Visual C++ 6.0, WinXP SP2
Surprising..
Regards,
Sandip.
|
|
|
|
|
SandipG wrote: Same output with Visual C++ 6.0
Visual C++ is not what a decent programmer call a standard compliant compiler, Sir !
|
|
|
|
|
IMHO such a discrepancy would be too gross, even for VC6 .
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
yes, probably, but it's not *THE* compiler to test the standard !
|
|
|
|
|
CPallini wrote: (it initializes only the first array element).
Not according to the STOSx instructions. Of course, I only use it to initialize POD types to 0 . Otherwise, I'd use memset() .
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
Sorry no STOS here:
...
const int N = 10;
int a[N]={7};
00401003 xor eax,eax
00401005 push esi
00401006 mov dword ptr [esp+8],7
0040100E mov dword ptr [esp+0Ch],eax
00401012 mov dword ptr [esp+10h],eax
00401016 mov dword ptr [esp+14h],eax
0040101A mov dword ptr [esp+18h],eax
0040101E mov dword ptr [esp+1Ch],eax
00401022 mov dword ptr [esp+20h],eax
00401026 mov dword ptr [esp+24h],eax
0040102A mov dword ptr [esp+28h],eax
0040102E mov dword ptr [esp+2Ch],eax
...
(Visual C++ 2008 Express Edition, Win XP ).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|