|
They look fine to me.
--
Ich bin der böse Mann von Schweden.
|
|
|
|
|
Hi,
I'm very new to ATL and need your help. I am trying to create a com dll using ATL which should contain a tabbed control and each tab page should be able to contain many other controls (or a composite control). Please let me know how I can create a control like that. Also how do I interact with individual controls in each pages (how to initialize, modify, store etc).
Please give me some pointers or, a link to page which explains it in detail.
Thanks in advance
|
|
|
|
|
How to close ATL Dialog?
dadsadasd
|
|
|
|
|
EndDialog
--
Futue te et ipsum caballum.
|
|
|
|
|
(Sorry Chris)
Is it just me, or is the Yahoo group setup becoming more and more unreliable?
I've been trying to read the WTL group messages, and more specifically, the files area, and I keep being told it's not available.
If only it was as reliable as CP!!
Steve S
|
|
|
|
|
Hi ALL,
I am using stl list. (TCHAR*) pointers inside it. Now I want to erase the whole list along with deleteing pointers..Help me..
VikramS
|
|
|
|
|
Iterate through all the entries in the list deleting the data, then call clear on the list to empty it.
std::list<TCHAR*>::iterator i;<br />
for (i=myList.begin();i!=myList.end();++i)<br />
{<br />
delete *i;<br />
}<br />
mTests.clear();
Mike
|
|
|
|
|
|
Excellent technique
However, he'll probably need to write his own specialized functor for dealing freeing arrays. I doubt he's storing pointers to single TCHARs.
--
Futue te et ipsum caballum.
|
|
|
|
|
My TCHAR ptr's are like this
TCHAR *ptr=new TCHAR[256];
|
|
|
|
|
<br />
struct STLDeleteObject<br />
{<br />
template<typename T><br />
void operator()(const T* ptr) const<br />
{<br />
delete ptr;<br />
}<br />
};<br />
<br />
std::for_each(mylist.begin(), mylist.end(), STLDeleteObject());<br />
Type is determined automagically.
Todd Smith
|
|
|
|
|
No, delete[] should be called, since it's an array of TCHAR.
--
Futue te et ipsum caballum.
|
|
|
|
|
Then you should create your own deleter functor, much like the one in the example provided by Nemanja. The difference will be the actual call to delete. Since you have allocated an array of TCHAR, you should use delete[] when freeing it. delete will work for simple TCHARs - because there is no ~TCHAR to be called for each element in the array. However, make a habit or you might run into problems when you have code like this:
class Class {
OtherClass* pObj;
public:
Class() { pObj = new OtherClass(); }
~Class() { delete pObj; }
};
...
Class* arr = new Class[10];
...
delete arr;
Remember! delete for single objects, delete [] for arrays.
--
Futue te et ipsum caballum.
|
|
|
|
|
I guess I need another helper template. I like your approach better because then you don't have to know about your container and which STLDelete*** template to call.
struct STLDeleteObject
{
template<typename T>
void operator()(const T* ptr) const
{
delete ptr;
}
};
std::for_each(c.begin(), c.end(), STLDeleteObject())
struct STLDeleteArray
{
template<typename T>
void operator()(const T* ptr) const
{
delete[] ptr;
}
};
std::for_each(c.begin(), c.end(), STLDeleteArray())
Todd Smith
|
|
|
|
|
I am writing a custom-draw TreeView/ListView hybrid control similar to the one found in "A custom-drawn TreeList Control 18 Mar 2000 by Gerolf Kuehnel", found elsewhere on this site.
I am having relatively good success, except that while the custom-draw TreeView is scrolling quite well, the Header Control that is added in the OnInitDialog is not receiving the WM_WINDOWPOSCHANGING and other various messages, thus it does not scroll.
I used Spy++ to look at the messages received by Mr. Kuehnel’s project and my ATL control, and the Header control window in my control doesn’t receive any of the messages that I am sending (tried both to use a WTL CHeaderControl, as well as a CContainedWindow). I presume I’m missing something in my message map, or incorrectly creating the header control. The header generated messages are working fine (e.g. HDN_ENDTRACK). Although I am doing the exact same operation as Mr. Kuehnel, The messages aren't reaching their target.
Below is my Message Map for the composite control:
BEGIN_MSG_MAP(CTreeListViewCtrl)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_SIZE, OnSize)
MESSAGE_HANDLER(WM_HSCROLL, OnHScroll)
NOTIFY_HANDLER(IDC_TREE,NM_CUSTOMDRAW,OnCustomdrawTree)
NOTIFY_HANDLER(IDC_TREE,TVN_DELETEITEM,OnDeleteTree)
NOTIFY_HANDLER(IDC_HEADER,HDN_ENDTRACK,OnEndTrackHandler)
CHAIN_MSG_MAP(CComCompositeControl<ctreelistviewctrl>)
DEFAULT_REFLECTION_HANDLER()
END_MSG_MAP()
This is where the item is created in OnInitDialog.
m_Header.Attach(
::CreateWindow(WC_HEADER,"", WS_CHILD|WS_VISIBLE|WS_BORDER|HDS_HORZ, 0,0,r.right - r.left,0,m_hWnd ,(HMENU)IDC_HEADER, hInst,NULL));
Can anyone give me an idea why this is happening?
Mark D Henning
ITT Industries
mark.henning@ITT.com
mdh@gldnrtvr.com
|
|
|
|
|
I have one com component working fine until yesterday now its giving me this exception?
what does it mean?
%1 is not a valid Win32 application.
Thanx.
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
|
humm, well i would have belived that if the component is from 3rd party. But the component,the .dll file is mine and i compiled and registered it before using it.
MSN Messenger.
prakashnadar@msn.com
|
|
|
|
|
I have an activeX control embeded in a HTML page, how can my activeX component know from which website is it being downloading from ?
i can pass values from html page to the component, and modify the html pages to give different values to the activeX control from different websites is this a good way or i can accomplish this without modifying the HTML page ?
thanks in advance
C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg
|
|
|
|
|
|
this post have been moved to the COM forum, oops
|
|
|
|
|
Hi...
i am very new to wtl and atl....first i was wondring if i have wtl libraries does it mean i have atl too?
second how can i display another dialog in application?
imagine i have a main dialog and with clicking on a button i want to show anoother dialog....how?
also why mostly ppl try to call createdlg and not createwindow for other dialog?any diffrence?
Sorry if very newbie questions...
Thanks
Roozbeh
|
|
|
|
|
ATL comes with Visual C++.
There's nothing special about showing a second dialog, it's the same as the first one. Create a class for it, create an object of that class and call its DoModal()
--Mike--
Personal stuff:: Ericahist | Homepage
Shareware stuff:: 1ClickPicGrabber | RightClick-Encrypt
CP stuff:: CP SearchBar v2.0.2 | C++ Forum FAQ
----
"Just because the box has 2 gigabytes of memory doesn't mean you get to use it all!"
-- Rico Mariani, CLR perf guy
|
|
|
|
|
Hello everyone:
I want to use some XML functions in a WTL project.
Can XML be used in a wtl project?
Where is there any sample?
Thank you.
-Freehawk
|
|
|
|
|
Yes it can be used.
MSN Messenger.
prakashnadar@msn.com
|
|
|
|