|
I want to set some member variables of my CDialog (modeless).
SO I do stuff like
CImageDisplay* pImageDisplay = new CImageDisplay;
if (pImageDisplay == NULL) return;
BOOL ret = pImageDisplay->Create(IDD_IMAGEDISPLAY, this);
Where do I put pImageDisplay->width = 100; ? Before the create() or after the create()?
Appreciate your help,
ns
|
|
|
|
|
I tried both - it doesnt seem to matter...
Appreciate your help,
ns
|
|
|
|
|
It doesn't matter because you've reserved memory space for the dialog once you have declared the dialog variable.
When you create the dialog you are telling windows to attach a dialog resource,which is the parent window...
But the class it's already created once you've declared the variable.
hope this helps...
|
|
|
|
|
Thats really interesting - I was trying to deduce the sequence of events with stepping and breakpoints but the IDD_DIALOG resource connection didnt show up with my strategy so your response makes that clearer!! Thanks.
Appreciate your help,
ns
|
|
|
|
|
Fellow cpians , how can I hook to a file to catch that the file changed ?
I'm must code a application that is always monitoring a file on the filesystem and every time that the file is updated , I need to be notified of the fact to reload the file data in my COM Server.
Some Windows message , DDE event , hooking mechanism (In a long distant past I already have done something like this, but it's part of my forgotten memories)???
Thanks in advance.
Cheers,Joao Vaz
And if your dream is to care for your family, to put food on the table, to provide them with an education and a good home, then maybe suffering through an endless, pointless, boring job will seem to have purpose. And you will realize how even a rock can change the world, simply by remaining obstinately stationary.-Shog9
Remember just because a good thing comes to an end, doesn't mean that the next one can't be better.-Chris Meech
|
|
|
|
|
ReadDirectoryChangesW
OR
FindFirstChangeNotification
|
|
|
|
|
The 2 functions don't work only on a single file , but making a directory with only 1 file should do the trick.
So many thanks for your help
Cheers,Joao Vaz
And if your dream is to care for your family, to put food on the table, to provide them with an education and a good home, then maybe suffering through an endless, pointless, boring job will seem to have purpose. And you will realize how even a rock can change the world, simply by remaining obstinately stationary.-Shog9
Remember just because a good thing comes to an end, doesn't mean that the next one can't be better.-Chris Meech
|
|
|
|
|
Hi,
I am running into a problem with deriving an atl class. I am using VS.Net and have run the wizard to create an non-attributed atl service. I want it to be an interactive service so I decided that I would need to derive the CAtlServiceModuleT class and add m_status.dwServiceType |= SERVICE_INTERACTIVE_PROCESS; to make the service an interactive process.
This is the class that I created in a header file I call ATLINTERACTIVEPROCESS.H
#pragma once
#include <atlbase.h>
#ifndef _ATL_NO_SERVICE
template <class T, UINT nServiceNameID>
class ATL_NO_VTABLE CAtlInteractiveServiceModuleT : public CAtlServiceModuleT<T, nServiceNameID>
{
public :
CAtlInteractiveServiceModuleT() throw()
{
m_status.dwServiceType |= SERVICE_INTERACTIVE_PROCESS;
}
};
#endif
</code>
When I compile this I get the following errors
ATLINTERACTIVESERVICE.h(7) : error C2504: 'CAtlServiceModuleT' : base class undefined
ATLINTERACTIVESERVICE.h(15) : see reference to class template instantiation 'CAtlInteractiveServiceModuleT<t,>' being compiled
ATLINTERACTIVESERVICE.h(7) : error C2143: syntax error : missing ',' before '<'
I would assume that including <atlbase.h> would "define" the base class.
If I take the code and drop it in the atlbase.h header file just under CAtlServiceModuleT<> everything compiles fine. Unfortunately I don't want to keep this code in the atlbase.h file because it could be changed by microsoft and my collegues would have to have a "special" version of atlbase.h to compile this service. Does anyone have any idea what I am doing wrong? Can derived template classes exist in other header files than their base classes? Are there defines that I am missing? As a side note is there a way to debug the compile pass?
Please help!!
Cheers,
Clint
|
|
|
|
|
The 'CAtlServiceModuleT' class is hidden by the ATL namespace.
Cheers,
Clint
|
|
|
|
|
I have to parse a CSV file, make changes to it and then re-write to another file... The CSV part is ok, but when I use \r in CStrings, I get a "block" character.. I know it is ok but if I view it in Notepad or any other file viewer, there won't be any carriage returns, just those characters representing the \r...
Why is that?
Thanks!
---------------
Tired of Spam? Introducing InboxShield® for Microsoft® Outlook®
http://www.edovia.com
|
|
|
|
|
In Windows, \r needs to be paired with \n to give you the carriage return. So use "\r\n".
Regards,
Alvaro
All you need in this life is ignorance and confidence, and then success is sure. -- Mark Twain
|
|
|
|
|
LukeV wrote:
if I view it in Notepad or any other file viewer, there won't be any carriage returns, just those characters representing the \r...
That is expected.
In MS-DOS, and derived stuff like Win32, the EOL sequence is CRLF. Either CR or LF alone is just an unprintable control character, much like BEL or anything else !isprint().
|
|
|
|
|
In my app, I have an MDI window but when I close all its child windows, all the menu items in the default window for the parent frame are disabled, even though I have message handlers for them in that frame's class. Any ideas of what is going wrong and how i can work around this?
Any help would be greatly appreciated.
Ben
|
|
|
|
|
This is from really dusty memory, but I think with an MFC based MDI app, you have two menus. One for when there are no documents opened and another for when at least one document is opened. When you close all child windows, I think the framework will replace the menu. Since you have written handlers for the menu that is displayed when a child window is opened, these commands will be enabled. However if you have not written handlers for the menu that is displayed when no documents are opened, then these commands will be disabled. Just me guessing here.
Chris Meech
"what makes CP different is the people and sense of community, things people will only discover if they join up and join in." Christian Graus Nov 14, 2002.
"AAAAAAAAAHHHHHH!!!!! Those leaks are driving me crazy! How does one finds a memory leak in a garbage collected environment ??! Daniel Turini Nov. 2, 2002.
|
|
|
|
|
I'm trying to do hit tests in a defined region using CRgn::PtInRgn(x,y) and keep getting an assertion failure message (as if the object was not instantiated). Here's the situation:
CRgn rgn;
rgn.CreateEllipticRgn(a,b,c,d);
if (something)
...if (something else)
......if (rgn.PtInRgn(x,y)) //assertion here
but
if (something)
...if (something else)
......CRgn rgn;
......rgn.CreateEllipticRgn(a,b,c,d);
......if (rgn.PtInRgn(x,y)) //no assertion this time
This is as if the CRgn object is not recognized w/in a block. Can anyone help me out? Thx,
Ralf.
ralf.riedel@usm.edu
|
|
|
|
|
The only thing I can come to think of, is that the "something" code stomps on stack memory it shouldn't.
|
|
|
|
|
If the user specifies a folder and I need to make sure there is such a folder, how do I check its existence in code?
Appreciate your help,
ns
|
|
|
|
|
I use CreateDirectory(path). if it fails with error 183, it already exists. The only draw back is that if you need to check with them if you want to create it, you already have.
Roger Allen
Sonork 100.10016
Were you different as a kid? Did you ever say "Ooohhh, shiny red" even once? - Paul Watson 11-February-2003
|
|
|
|
|
A call to FindFirstFileEx (also suitable for folders) returns an error code when the specified file doesn't exist - so you can easily check the folder's validity.
|
|
|
|
|
Thanks - I will try that
Appreciate your help,
ns
|
|
|
|
|
ns wrote:
how do I check its existence in code?
I would do ::GetFileAttributesEx(strFolderPath, GetFileExInfoStandard, NULL) and check the return value and/or check ::GetLastError() for a return of 2 ("System cannot find the file specified")
-pete
|
|
|
|
|
http://www.codeproject.com/file/CFileManip.asp[^]
<br />
int nRes = CFileManip::Existence(_T("c:\\somepath\\somefolder"));<br />
<br />
if (nRes == CFileManip::FM_DIRECTORY)<br />
{<br />
}<br />
else if (nRes == CFileManip::FM_FILE)<br />
{<br />
}<br />
else<br />
{<br />
}<br />
|
|
|
|
|
Thank you for yet another workable suggestion. I hadnt explored the file category at CP...
Appreciate your help,
ns
|
|
|
|
|
I'm trying to use the ULONG_PTR type in my MFC app, but I'm getting the
error C2061: syntax error : identifier 'ULONG_PTR' compiler error message. I've had a look in MSDN and found 'Q255556', which suggests that I'm using the wrong basetsd.h, and that I should be using the one that comes with the platform SDK. I've had a look at my include directory (Tools | Options) and I've got C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE as the first directory, but still no joy with my ULONG_PTR.
Is C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE the platform SDK? And does anyone know what I need to do to be able to use ULONG_PTR?
Dylan
|
|
|
|
|