|
Hi
I have to do a lot of calculation after some item change is trigared.
but when multiple events are selected togather the OnItemchanged will be trigared many times.
How to avoid this when bulk of events are selected or unselected?
Is there any message which is send after all the item change messages are send?
is there any way in whic i can call itemchange only once even if multiple events are selected togather
please healp
harish
|
|
|
|
|
You can solve it by setting a timer of a small delay on selection change and processing the change in the timer event. Notice that this timer should be deleted first in the OnTimer.
Eg.
OnSelChange()
{
SetTimer( IDT, 50, 0 );
}
OnTimer(UINT id)
{
if( id == IDT )
{
KillTimer( id );
ProcessSelection();
}
}
- NS -
|
|
|
|
|
Hi,
this seems to be one option but then again there is perfomance problem.
i want to avoid calling the calculation function which is bulky for each items. it will be batter to call it in one struch after all the items ater is changed due to some user interaction.
can you suggest some messages which will be trigared after all the item change messages are send?
thanks in advance
sourabh
|
|
|
|
|
Hi ,
Maybe this will help you :
void YoutClass::OnItemchangedListCtrl(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->uNewState)
{
}
With best regards,
Eli
|
|
|
|
|
Hi,
Maybe this will help you:
void YourClass::OnItemchangedListCtrl(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->uNewState)
{
}
}
With best regards,
Eli
|
|
|
|
|
hi..
thanks for the suggestions
but there are problems ..i am using the
void YourClass::OnItemchangedListCtrl(NMHDR* pNMHDR, LRESULT* pResult)
function currently to know the change of items state. but here when user select a huge no of items using the shift + end key or using some other key insted of doing it after all items are changed we can do it only one by one.This will afftect the performance . it will be batter if i can track some message which is trigared after all selection changes are domne.
Is there any message which is faired after all selection related changes are done?
please do help ..
sourabh
|
|
|
|
|
hi,
I tried the timer concept.It seems to be working smoothly.I was thinking about the over head. but here this seems to be the only option!
sourabh
|
|
|
|
|
hi,
I tried the timer concept.It seems to be working smoothly.I was thinking about the over head. but here this seems to be the only option!
Tnaku you
sourabh
|
|
|
|
|
I have to get exe file with new name.So i changed my .dsw file int o other name and once again i buid my coding but the exe is created with the old name.How can i change the exe name.(except the rename option of EXE file)
|
|
|
|
|
Anu_Bala wrote: How can i change the exe name.(except the rename option of EXE file)
Goto project settings->Link tab->Output file name->Newfilename.exe
Nibu thomas
Software Developer
|
|
|
|
|
|
renaming you .dsw file will not work..
try this
in the visual c++ ide.
go to Project > Settings.
in the tab control select "Link" tab.
here you can see a section called "Output file name"
change the output file name here. you can give what ever you want...
^-^
@|@
- redCat
|
|
|
|
|
Ya..Its working Thank you
|
|
|
|
|
How to delete buttons from toolbar?
If we select button and press delete. Button will turn white but it is not deleted..
|
|
|
|
|
acemahesh@yahoo.co.in wrote: How to delete buttons from toolbar?
If we select button and press delete. Button will turn white but it is not deleted..
Drag them off the toolbar.
Nibu thomas
Software Developer
|
|
|
|
|
Thank You very much..
Its works.
|
|
|
|
|
I believe when a dialog is created by using CreateDialog(), it creates a modeless dialog.
Now, which message pump does this modeless dialog use? If it has its own implementation of a message pump then it would be modal, isn't it?
Any answers?
---
With best regards,
A Manchester United Fan
The Genius of a true fool is that he can mess up a foolproof plan!
|
|
|
|
|
Or, does a Modeless dialog run on a separate thread or process?
---
With best regards,
A Manchester United Fan
The Genius of a true fool is that he can mess up a foolproof plan!
|
|
|
|
|
The modeless dialog doesn't run in a separate thread. It will act like a window created with CreateWindowEx(), so it usually uses the message loop that the rest of your application is using.
This means you shouldn't have any lengthy processing in your modeless dialog, as both the dialog and the parent window won't be able to handle messages eg. paint the window.
|
|
|
|
|
Thanks a lot for the answer.
---
With best regards,
A Manchester United Fan
The Genius of a true fool is that he can mess up a foolproof plan!
|
|
|
|
|
Hi again
I found an odbc library that i think it would be very helpful for me to connect to my db. Before using it i need to do the following. I dont know how to link my project to the library. can anyone explain to me how to do this in VC++.
To use this DLL library in your projects, you will have to include a header file DataLayer.h and copy the compiled module named DataLayer.dll where your executable output is. Or, you can copy it to the Windows folder. Anyhow, now you will be able to instantiate some (but not all) classes from the DataLayer library. The last thing you should do is link your project to the static library DataLayer.lib
Thanks a lot
|
|
|
|
|
antonaras_marcou wrote: The last thing you should do is link your project to the static library DataLayer.lib
#pragma comment(lib, "DataLayer.lib")
or
Add the library to your project.
Nibu thomas
Software Developer
|
|
|
|
|
From the docs...
OnUpdate :
Called by the framework after the view’s document has been modified; this function is called by CDocument::UpdateAllViews and allows the view to update its display to reflect those modifications. It is also called by the default implementation of OnInitialUpdate .
The default implementation invalidates the entire client area, marking it for painting when the next WM_PAINT message is received. Override this function if you want to update only those regions that map to the modified portions of the document. To do this you must pass information about the modifications using the hint parameters.
OnDraw:
Called by the framework to render an image of the document. The framework calls this function to perform screen display, printing, and print preview, and it passes a different device context in each case. There is no default implementation.
You must override this function to display your view of the document . You can make graphic device interface (GDI) calls using the CDC object pointed to by the pDC parameter. You can select GDI resources, such as pens or fonts, into the device context before drawing and then deselect them afterwards. Often your drawing code can be device-independent; that is, it doesn’t require information about what type of device is displaying the image.
Nibu thomas
Software Developer
|
|
|
|
|
>Called by the framework to render an image of the document. The >framework .calls this function to perform screen display, printing, and >print preview, and it passes a different device context in each case. There >is no default implementation.
so Onupdate must be calling ondraw since it displays data on the screen . AM i right?
|
|
|
|
|
ppatel567 wrote: so Onupdate must be calling ondraw since it displays data on the screen . AM i right?
True. That is how Document view architecture works!
Document holds the data that will be represented by the view. If the data changes (i.e. the document changes) the view must reflect the changes.
Nibu thomas
Software Developer
Faqs by Michael dunn
|
|
|
|