In post “Stack vs. Heap“, we have discussed about stack and heap, and given the simple rules on the choice of stack or heap. And today, we give some simple examples for a clear image. Typically, if an element does not need to exist beyond the scope of its variable, you are much better off [...]
Here is a simple rule when to define objects on the heap and when to do it on the stack. The stack is much more efficient than the heap. Simple rule: Use the stack when you can. You cannot use the stack if you need the object in other functions. (Stack allocations are deleted when [...]
In some case, you need such a control as the following figure: It’s a CListCtrl like control, but it binds a CTreeCtrl in the first column. But you can also consider it as a CTreeCtrl and each of the items has the list style. All roads lead to Rome. But in 1999, David Lantsman has [...]
06 Nov
Posted by support as General 6,885 views, 15 Comments
After you modified your reource.h, you may got this error: fatal error RC1004: unexpected end of file found. It’s a bug of the resource compiler. The solution is adding a blank line or two to the end of the file and build again.
Sometime you need to send/post message to CDoumnet, but CDocument is not a window, and it can’t receive message. How do that? There are 3 solutions: Solution 1: Send the message to the main window. Send/Post the message to the main frame or the view, and then call some functions of the document. But if [...]
22 Oct
Posted by support as General 3,599 views, 2 Comments
Sometime you use CListView and need to extend the functionality of the CListCtrl of the view. For example, you want to overwrite the handler function of the NM_CUSTOMDRAW or WM_SIZE message. So the problem is: How to tell CListView to use your own CListCtrl? OK, you are on the wrong way now. The CListView does [...]
18 Oct
Posted by support as General 263 views, 0 Comments
How to set the head backgroud color of CPropertyPage? In the DrawItem function the TextOut position is pretty half-hearted, and looks a bit better (to my eyes) if you do it something like this instead. void CMyTabCtrl::DrawItem(LPDRAWITEMSTRUCT lpDIS) { CDC* pDC = CDC::FromHandle(lpDIS->hDC); CRect rc(lpDIS->rcItem); TCHAR szTabText[255]; TC_ITEM tci; tci.cchTextMax = sizeof(szTabText)-1; tci.pszText = szTabText; [...]
18 Oct
Posted by support as General 962 views, 0 Comments
How to set the backgroud color of CPropertyPage? If you override OnCtlColor in your property page, then you can return a different background color and that seems to work with CStatic and other items. But what if you want is a background that’s not just a simple color? You’d like to be able to draw [...]
18 Oct
Posted by support as General 4,127 views, 0 Comments
Use CListCtrl::SetItemState with LVIS_SELECTED
22 Jun
Posted by support as General 663 views, 0 Comments
In MFC program, you’d better try to avoid using std::string. There is no compelling reason to use it in MFC, and it leads to confusion. There are some standard method to translate among Cstring ,string and char[]. // Suppose CString str; std::string s; char buf[SIZE]; // from CString to std::string s = str; // from [...]