|
thanku very much it solved my problem
|
|
|
|
|
neha.agarwal27 wrote: I m trying to make a linked list. in which three items are present...
hmmm. looks like you only add one item.
node *temp = new node;
start_ptr = temp;
After that, the for loop is pretty much much non-sense.
Try to think it over and do your analysis on paper, draw boxes (for the node) and arrows for the next pointers.
|
|
|
|
|
At risk of stating the obvious:
This is obviously homework. That's fine, you've tried to do it yourself and asked for help, which is what the site is for. But, while I think everyone should write a linked list class, and a dynamic array class, at a minimum, once you've done that, for any code you write, you should use std::list and std::vector as your containers. You should write them to understand how they work, and what their relative cost is, and their strengths and weaknesses are. So, once you've learned from writing this class, don't make the mistake of using it for any future projects
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
what abt using std::list try http://www.cppreference.com
|
|
|
|
|
I have the written the following method for disabling some controls:
void RecordImageWindow::SetImagePanelEnabled(HWND hDlg, bool enable){<br />
SendMessage(GetDlgItem(hDlg, IDC_TXTIMAGEFILELOCATION), WM_ENABLE, (WPARAM)enable, 0);<br />
SendMessage(GetDlgItem(hDlg, IDC_COMBOIMAGEFILETYPE), WM_ENABLE, (WPARAM)enable, 0);<br />
SendMessage(GetDlgItem(hDlg, IDC_CMDIMAGEFILELOCATION), WM_ENABLE, (WPARAM)enable, 0);<br />
<br />
}
I've checked the LRESULTs and called GetLastError and there are no problems, however none of the controls get disabled (the enable parameter is false). The text box gets greyed out but input can still be typed into it and the other controls are still usable.
Is WM_ENABLE the correct flag to send in order to disable Dialog controls? or should i be using something else...
|
|
|
|
|
use EnableWindow Function
GetDlgItem(hDlg, IDC_TXTIMAGEFILELOCATION)->EnableWindow( FALSE );
WM_ENABLE message is actually a notification send by windows when a window is enabled or disabled.
nave
|
|
|
|
|
The Solution:
void RecordImageWindow::SetImagePanelEnabled(HWND hDlg, bool enable){<br />
EnableWindow(GetDlgItem(hDlg, IDC_TXTIMAGEFILELOCATION), enable);<br />
EnableWindow(GetDlgItem(hDlg, IDC_COMBOIMAGEFILETYPE), enable);<br />
EnableWindow(GetDlgItem(hDlg, IDC_CMDIMAGEFILELOCATION), enable);<br />
}
Thanks for your help, mate.
|
|
|
|
|
gunner_uk2000 wrote: The Solution:
Seems like I have asked the question
How ever your code will create compilation error.
you need to modify it as
GetDlgItem(hDlg, IDC_TXTIMAGEFILELOCATION)->EnableWindow( enable );
or
::EnableWindow(GetDlgItem(hDlg, IDC_TXTIMAGEFILELOCATION)->m_hWnd, enable);
nave
|
|
|
|
|
It compiles and runs fine.
GetDlgItem returns a handle to the dialog item, so it can be passed in as the parameter for the EnableWindow method.
You can't call Enable window from it as HWND is just a handle and had no Enable window method.
Ian.
|
|
|
|
|
hoo i thought u have called the CWnd::GetDlgItem function
nave
|
|
|
|
|
gunner_uk2000 wrote: You can't call Enable window from it as HWND is just a handle and had no Enable window method.
What Navin is talking about is MFC function CWnd::EnableWindow , and what you are talking about is win32 API EnableWindow . So its correct in both cases.
|
|
|
|
|
Sorry, I should have made it clear I am using win32 API
|
|
|
|
|
We have built a com based application in VC5, VC6 in debug mode & works fine.
when migrated to VC++ 8.0, com register class is failing.
VC6 binary is built which atl6.0.dll and works fine. but when the application is built with atl8.0 com register class is failing.
We are using CComModule class in atl6.0. But it looks like the same class is change to CAtlComModule in atl8.0
Is there any option which will enable backward comptible in atl8.0?
|
|
|
|
|
TssPrasad wrote: We are using CComModule class in atl6.0. But it looks like the same class is change to CAtlComModule in atl8.0
Even though there are some changes. Component made under VC6 , and again converted on VS2005 will not fail to register.
Try putting break point in DllRegisterServer , and see where it fails.
|
|
|
|
|
Hi all,
It appears that there is some length restriction in VC++ 6.0 for the "Additional include directories" field. This is under Project-> Settings-> C/C++ tab -> Category: Preprocessor. Due to the specifics of the component I am working on I cant decrease the number of inlude paths that I have to enter in this field and at some point on VC just stops to accepts anymore paths and sh*ts start to happen. Ive tried to enter the paths manually in the dsp file but with no success. If someone has a solution for this, please help!
Note that a solution should mean that all include paths I need have to be stored somewhere in the project or at most in a file attached to the project in such a manner that if someone else wants to review my component one should only download it from the Source Safe Server and run it without any additional modifications in his side!
Approximate size for the additional include directories string I am trying to enter: ~3k
|
|
|
|
|
|
I am not kidding. Project is big. Lots of components. I need them all. The path names are long themsleves too. SUBST cant be used because the idea is to copy the project on another machine and it should work without doing subst there.
I have seen this problem reported before but did not find any solution. I know its ridiculous but this is the situation! Anyone who knows how to deal with this problem is welcome!
|
|
|
|
|
Consider this example:
Suppose your projects are setup in the following paths:
c:\MyProjects\common\include
c:\MyProjects\DLLs\DllProject1\include
c:\MyProjects\DLLs\DllProject2\include
c:\MyProjects\Project1\include
Lets suppose Project1 needs the includes from DLLProject1, DLLProject2, and common\include.
You could enter the include paths for Project1 using relative paths, relative to the Project1 project folder. Using the above example, your include path could be:
.\include;..\common\include;..\Dlls\DllProject1\include;..\Dlls\DllProject2\include
Alternatively, you might be able to use evironment variables (macros) in the include path. What you could do is define environment variables that define common directory paths into a single macro.
Using this technique, you could define these environment variables.
SET PROJECTBASE="C:\MyProjects\"
SET COMMONINCLUDE="%PROJECTBASE%common\include"
SET DLLBASE="%PROJECTBASE%DLLs"
Your include path would be:
.\include;$(COMMONINCLUDE);$(DLLBASE)\DLLProject1\include;$(DLLBASE)\DLLProject2\include;
The basic idea is to merge as many common folders into a single macro.
The IDE will automatically expand the $(<environment variable>) macros as needed. Using this technique makes it real easy to move your projects from one folder to the other without having to tweak each of the projects. You just have to adjust the environment variables.
I hope this information helps you or at least gives you ideas on how you can solve your include path problems.
This subject could be a good idea for a beginners article here on CP.
|
|
|
|
|
Hai..
Iam using SHFileoperation to copy folders..
While copying those i need to show progress bar.I was able to do that upto some extent by using FOF_SAMPLEPROGRESS.
But in this it is not showing the file names which are being copied.
How to show the file names in the progress dialogbox??Can any one help me out..
Thanks in advance.
Regards
vijay
|
|
|
|
|
Vjys wrote: FOF_SAMPLEPROGRESS.
Its this flag causing it, have you seen its MSDN description ? It says,
Display a progress dialog box but do not show the file names.
Can you show code, what you are doing ?
-- modified at 6:46 Friday 30th March, 2007
This code just work perfect for me,
SHFILEOPSTRUCT sfo;
sfo.hwnd = NULL;
sfo.wFunc = FO_COPY;
sfo.pFrom = _T("F:\\FromFolder\0");
sfo.pTo = _T("c:\\TargetFolder\0");
sfo.fFlags = NULL;
SHFileOperation(&sfo);
|
|
|
|
|
Thanks for reply..
The code is working perfectly 4 me..almost similar to you...
Are you getting the file names in the progress dialog box..
Ya i used FOF_SAMPLEPROGRESS, it is without file names.
I want with the file names.Generally we will get the file names also, right when we are copying files.
How to get it??
Thanks.
Regards
vijay
|
|
|
|
|
Vjys wrote: How to get it??
I guess, you have not seen previous post, which I modified already.
|
|
|
|
|
SHFILEOPSTRUCT SHFileOp;
ZeroMemory(&SHFileOp, sizeof(SHFILEOPSTRUCT));
SHFileOp.hwnd = NULL;
SHFileOp.wFunc = FO_COPY;
sPath+='\0';
SHFileOp.pFrom=sPath;
DestPath+='\0';
SHFileOp.pTo = DestPath;
SHFileOp.fFlags = FOF_NOCONFIRMMKDIR|FOF_SIMPLEPROGRESS;
//The Copying Function
SHFileOperation(&SHFileOp);
Ya this is the code..in it sPath & Destpath are var strings..
Regards
vijay
|
|
|
|
|
I asked you to remove FOF_SIMPLEPROGRESS flag. Definitely , you have not read my first reply.
Your code should be like this,
SHFILEOPSTRUCT SHFileOp;
ZeroMemory(&SHFileOp, sizeof(SHFILEOPSTRUCT));
SHFileOp.hwnd = NULL;
SHFileOp.wFunc = FO_COPY;
sPath+='\0';
SHFileOp.pFrom=sPath;
DestPath+='\0';
SHFileOp.pTo = DestPath;
SHFileOp.fFlags = FOF_NOCONFIRMMKDIR;
SHFileOperation(&SHFileOp);
And use <pre> tags , while posting the code.
|
|
|
|
|
Thanku..Thanku very much..its working...
bye...
Regards
vijay
|
|
|
|