|
Hi, may be not a good question. I have structure and I have created pointer to a structure. It is giving me memory leak if I delete this pointer also. Please help me how can I delete this pointer. Find below the code.
<br />
struct DemoTreeData<br />
{<br />
DWORD m_obj_id;<br />
RWCString* ptext;<br />
};<br />
<br />
DemoTreeData* pTreeData=new DemoTreeData;<br />
pTreeData->m_obj_id = debug->GetData();<br />
pTreeData->ptext = new RWCString(debug->GetMessage());<br />
delete pTreeData;<br />
pTreeData=NULL;<br />
Can I delete the pointer like above or we have to write the destructor for that? Please suggest me.thanks..
|
|
|
|
|
Two solutions: either write a destructor and inside the destructor, take care of destroying pText if not NULL (you'll also have to write a constructor to initialize it to NULL) or don't forget to destroy pText externally if you allocated it. Solution 1 is better.
|
|
|
|
|
humm! faster reply!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
SRKSHOME wrote: pTreeData->ptext = new RWCString(debug->GetMessage());
this is creating memory leak, you have to first delete memeory allocated to ptext, then delete the main structure.
Since, when you allocate memory to structure object, it will allocate only 4 byte to ptext object since it is pointer and when you delete the structure pointer it will only delete the 4 byte, which it is allocated to the variable at the time of allocation not the memory you allocate to ptext variable.
Now, for saving your self from memory leak, it would advisable first to delete memory allocated to datamember then delete the structure object itself
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
Hi all,
I m using a ListCtrl,Here i m using a alternate colors property with help of article which is available on code project.
The problem is that if there is number of data peresent in listctrl and if i use a vertical scroll bar to scroll the List than the lower side List ctrl not looks like upper side it means noy looks in alternate colors pattern.
It looks like we rub some portion of its.
i think its a problem of refresh the list.
please help me how can i solve this.
i m waiting for your valuable suggestions and answers.
Thanks in advance.
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
try UpdateWindow() api, it will post WM_PAINT message to Listctrl to redraw it self!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
I m using a List in Form View,If i add Paint function it prompts OnPaint not use for views.
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
I am asking you to call CListCtrl->UpdateWindow()
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
Where i can call this function.
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
As your running the CListCtrl in a CFormView you are probably DDX'ing the control to assign it to a member variable. In your header you will have somwthing like:
CListCtrl m_myList;
In the .cpp file:
DDX_Control(pDX, IDC_LIST1, m_myList);
To cause the window to re-draw itself you will need to call the UpdateWindow function as follows:
m_myList.UpdateWindow();
If you vote me down, my score will only get lower
|
|
|
|
|
Roger Allen wrote: To cause the window to re-draw itself you will need to call the UpdateWindow function as follows:
m_myList.UpdateWindow();
i know that but i asking u in which function i can use this.
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
There is no easy place that I can think of where you can catch the WM_VSCROLL event of the CListCtrl.
I would suspect the problem lies in the NM_CUSTUMDRAW handler for the items being drawn.
If I remember correctly a CLIstCtrl uses the ScrollWindow function and then gets you to draw the new items which have scrolled into view. The ScrollWindow function only scrolls the areas for which a column has been created for. Options:
1. Change your custon draw function to limit the background colour drawing to the width of the created columns so you do not draw in the unused blank area.
2. Try changing the style of the CListCtrl to included the LVS_EX_FULLROWSELECT style.
m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT);
This may cause the control to scroll the entire client area correctly.
If you vote me down, my score will only get lower
|
|
|
|
|
Hi all,
At one point of my application(using vc++) I need to restart the system. That I am doing like-
BOOL CtestShutDlg::RestartSystem()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
// Get a token for this process.
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return( FALSE );
// Get the LUID for the shutdown privilege.
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
// Get the shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);
if (GetLastError() != ERROR_SUCCESS)
return FALSE;
// Shut down the system and force all applications to close.
if (!ExitWindowsEx(EWX_REBOOT,
SHTDN_REASON_MAJOR_OPERATINGSYSTEM |
SHTDN_REASON_MINOR_UPGRADE |
SHTDN_REASON_FLAG_PLANNED))
return FALSE;
return TRUE;
}
It restart the system immediately when this function called up. I want that there should be some kind of warning or any type of message to user "your system need to be reboot now" like that before rebooting.
Please suggest me some way how can I do this.
Thanks
|
|
|
|
|
Place a MessageBox before Rebooting, based on user selection, you can implement rebooting logic like :-
if(MessageBox("Do You want restart the computer","",MB_YESNO)== IDYES))
else
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
Thanks for your suggestion Alok,
I will apply this now.
|
|
|
|
|
my pleasure buddy!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
Hi all,
I am using VC-2008 for coding and i wanted to get my hard disk name and all the information related to it.....
Can anybody please tell me which api to use....
Thanks in advance
|
|
|
|
|
You can use WMI.
Here is sample link for using WMI
WMI C++ Example[^]
And here is WMI class that you may be looking for with all the hdd information
Win32_PhysicalMedia[^]
I hope it helps..
Regards,
Sandip.
|
|
|
|
|
|
Try Win32_DiskDrive Class. It returns all the details of your Hard drive.
|
|
|
|
|
Hi,
I have a child dialog over a parent dialog on which i am using three Group Boxes.
What I want to achieve is to change the Background colour of all three group boxes with different colours. I am using MFC.
kindly help me.
Thanks & Regards.
Dhiraj
|
|
|
|
|
|
Just as a query, you would be returning a different color brush from WM_CTLCOLOR in case the control is a group box. But this would only paint the area behind the caption of the group box. The OP wants to fill the background of the group box, if my understanding is correct.
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
yes i want to fill the background colour that to of three different group boxes with three different colours.
Please tell me how to do it.
|
|
|
|
|