|
Now why on earth would someone vote someone down for trying to help.
Now, if the implementation the OP provided for the encryption algorithm is wrong, that's out of my hands. They wanted the code to complete the process and it does.
|
|
|
|
|
Iam giving you 5 stars for your exceptional patience on reviewing such a long message. but it seems some priority member given you 1 star (total 5 + 1 stars / 2 votes = 1.8)
|
|
|
|
|
Rajkumar R wrote: (total 5 + 1 stars / 2 votes = 1.8)
Add my 5 ...
Now 3.2.
Maxwell Chen
|
|
|
|
|
that encourages.
|
|
|
|
|
Added my 5
Were up to 3.77
codito ergo sum
|
|
|
|
|
|
Hello,
I have a problem regarding a CTreeCtrl derived class. I have added a message handler for WM_CREATE:
int CMyTreeCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
I placed a CTreeCtrl item on the dialog in the resource aditor and afterwards I have change the class from CTreeCtrl to CMyTreeCtrl. This works.
But the problem is, that the OnCreate member function is never called...
What did I miss?
Regards
MM
|
|
|
|
|
Have you associated CMyTreeCtrl object with item placed on dialog in editor ?
Prasad
MS MVP - VC++
|
|
|
|
|
Yes, I have done this in the header file:
<br />
enum { IDD = IDD_MY_MGR_DLG };<br />
CMyTreeCtrl m_treeCtrl2;<br />
The object is created and I can call other functions I have added to CMyTreeCtrl.
When I create the object manually without a dialog resource it works:
<br />
m_treeCtrl2.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS|TVS_TRACKSELECT|TVS_SHOWSELALWAYS, rect, this, 1234);<br />
But I don't want to create all objects manually, I want to use the resource editor to do this.
|
|
|
|
|
When I said "assoicated", it means using DDX_ macro. You need to use dialog data exchange macros to associated dialong control with class variable.
Prasad
MS MVP - VC++
|
|
|
|
|
Yes, I forgot to mention this. My code looks like this:
<br />
void CMyMgrDlg::DoDataExchange(CDataExchange* pDX)<br />
{<br />
CDialog::DoDataExchange(pDX);<br />
DDX_Control(pDX, IDC_CHAIN_TREE, m_treeCtrl2);<br />
}<br />
<br />
I have edited nothing here. This code was generated automatically.
Regards
|
|
|
|
|
This isn't going to work.
The control in a dialog resource template is created before you get a chance
to catch the WM_CREATE for the control, which ends up going to the default window
procedure for the control class.
DDX isn't going to help either, since the first DDX operation done is subclassing the control,
which is done way after the control is created.
You have two options AFAIK -
1) Create a custom window class which wraps the windows control window class. This class needs
to be registered with Windows. The control on the dialog resource needs to be this type/class.
Then your window proc will get called for the control before you pass messages on to the control's
window proc. This would be window superclassing.
2) Create the control at runtime instead of letting Windows create it from the dialog template.
Note that whatever you need to do in this WM_CREATE handler, you may be able to do in the
dialog class' OnInitDialog(), which is easier than either of the options above.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hello Mark,
thank you very much for your help. I have now changed my class and now I do my initialization by calling a special function in my OnInitDialog.
Regards
|
|
|
|
|
madmax0001,
There is yet a third option for you. You can override the virtual function PreSubclassWindow() in your CTreeCtrl-derived class. You can do you initialization there.
Julberto
|
|
|
|
|
Julberto Danray wrote: PreSubclassWindow
That's cool if it works, but how does the the CWnd object get associated with the control before it is created?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I'm assuming the the control is being subclassed via SubclassDlgItem() or DDX_Control(). In either case PreSubClassWindow() will be called.
This is a very convenient way to initialize your subclassed controls because it does not require any special treatment from the dialog that contains the control.
Julberto
|
|
|
|
|
Right, but the OP is trying to catch WM_CREATE, which has occurred long before the first
DDX_Control() call.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Dear Sir:
I want to monitor a remote directory hosted on an FTP server to check up whether there are some newer files (compared with my local downloads) or not. If any, new files will be downloaded automatically.
I understand in the rough how to do that. Firstly, start a timer and periodically examine certain FTP remote folder through the use of CFtpFileFind member functions to check up whether there are some newer files (compared with my local downloads, but keeping a download timestamp may be a good idea) or not. But in case that the file is not completly written to the remote FTP folder, and at the same time my FTP monitor thread is going to be activated to do its checking job. How can I cope with this kind of "race condition" as ideal as possible?
BTW, any recommendations to the source codes concerned either free or commercially available are highly appreciated. Any suggestions are heartily welcome!
Thank you!
|
|
|
|
|
Firstly if there's another way other than polling the server I suggest you take it, kinder to the server.
With regards to your problem, why don't you check back (the next day or something) once a new file has been "discovered" and compare sizes, if the two are the same then you can download the file, if not wait another day and compare again to see if it's not growing anymore.
|
|
|
|
|
Dear Poore:
Thank you for your kind advice. I know polling the FTP server is not a good idea. My system must frequently check up the FTP server because some new data files will be put on the FTP server every 15 or 30 minutes. User can't wait any longer (not say wait until next day) because the successive production task will be carried out as earlier as possible. Our system is a time critical system.
Any suggestions? Could you kindly recommend any commercial or open source codes for me? Thank you again!
|
|
|
|
|
Golden Lee wrote: User can't wait any longer (not say wait until next day)
I just used the example of a day to keep from polling the servers too frequently. You could check the next time you poll, i.e. 15 minutes later. That way at worst it'll start 14 minutes late. Or you could set up something so that if and only if there's a new file detected then check only that file in a minutes time (depending on how fast you think files will be uploaded).
Golden Lee wrote: Could you kindly recommend any commercial or open source codes for me?
Sorry I don't know of anything
|
|
|
|
|
Golden Lee wrote: I want to monitor a remote directory hosted on an FTP server to check up whether there are some newer files (compared with my local downloads) or not.
Have you considered ReadDirectoryChangesW() or FindFirstChangeNotification() ?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Thank you for your suggestion. ReadDirectoryChangesW() or FindFirstChangeNotification function is usually used for watching local or UNC folder (\\computername\driveletter:\folder), not suitable for monitoring the remote folder on an FTP host running under Windows, Linux, Unix or other operating systems.
Thank you anyway!
|
|
|
|
|
Golden Lee wrote: ...Linux, Unix or other operating systems.
I did not see this constraint in your initial post or I would have not suggested what I did. Periodic polling is your only recourse.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hi,
I want to call a function on each line of code of my program. To achieve this, one way to is that I should call that function on each end of statement, but does there any event exist to do that, so that my function should be called automatically after end of each statement.
Best Regards,
Mushq
Mushtaque Ahmed Nizamani
Software Engineer
Ultimus Pakistan
|
|
|
|