|
I'm quite sure any function belongs to oleacc was not called in DllMain().
Maybe there are some global objects with c'tors calling oleacc functions? What's the error code after LoadLibrary?
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Tomasz,
o No, there is no such objects related to oleacc.
o LoadLibrary() returned zero.
I'm mostly giving up to make single binary work on 3 different Windows.
I love Code Project, do you?
Kurotora
|
|
|
|
|
LoadLibrary() returned zero.
Check the value returned by GetLastError. BTW: below you'll find the Win95-related note from LoadLibrary docs.
Windows 95: If you are using LoadLibrary to load a module that contains a resource whose numeric identifier is greater than 0x7FFF, LoadLibrary fails.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Tomasz,
GetLastError() returns 0x1f (ERROR_GEN_FAILURE).
Same code works on Windows 98 (but it could be loading oleacc).
Thanks.
I love Code Project, do you?
Kurotora
|
|
|
|
|
There's a KB article Q200767 dealing with ERROR_GEN_FAILURE and LoadLibrary. However, it applies to both Win95 and Win98.
Last idea: try adding /delay:nobind to linker options.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Tomasz,
/delay:nobind option didn't work.
Thanks anyway.
I love Code Project, do you?
Kurotora
|
|
|
|
|
Is it possible to subclass the CListCtrl in a CListView?
When I try it from CListView::OnCreate(), it fails while inside the Attach() function. The error indicates that the control has already been subclassed?
I have seen many articles on the web that say you need to derive from CView instead of CListView (and add a CListCtrl member), and move the CListCtrl to cover the view. Is this really the only way to use your own CListCtrl in a CListView?
|
|
|
|
|
CListView is a wrapper over Win32 list control, the control is already subclassed for you by MFC. Just handle the messages in a CListView derived class. You don't need a child CListCtrl, unless you plan to reuse it as a control (not a view) in the future.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Hello,
I have a tree control that I would like to do in-place editing of the labels. But, I only want to be able to edit certain levels. I currently have a context menu that gets enabled when on the appropriate level and calls myTree.EditLabel(sHItem) which is exactly what I want. However, when I check "Edit Labels" on the tree control in the resource tab, everything is editable. If I don't check this, then I crash when I call EditLabel(). Is there a way around this?
Assuming I get everything working, I have a couple more questions. How do I capture once the user is done editing. I may want to prevent them from renaming or provide a warning message if they proceed. The problem I see is each level has different contraints that I have to handle. Do I have to provide all the logic for each level in the OnEndlabeledit() handler?
Thanks in Advance!
Derek
|
|
|
|
|
However, when I check "Edit Labels" on the tree control in the resource tab, everything is editable.
Handle TVN_BEGINLABELEDIT notification. Return TRUE to cancel label editing.
How do I capture once the user is done editing.
TVN_ENDLABELEDIT, wrapped by OnEndlabelEdit handler. Return FALSE to reject the edited text and revert to the original label.
Do I have to provide all the logic for each level in the OnEndlabeledit() handler?
Yes.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Thanks - I worked through some of that, but you confirmed my suspicions!
I have a new problem related to this. If I only want to allow in-place label editing from a right-click context menu - say "Rename", how do I do this and not allow the tree to do the in-place editing as well. What I'm looking for is the same functionality as in regedit.exe and the right-click "Rename" command on a key, value, etc.
You've helped me in the past and I truly appreciate it!
|
|
|
|
|
how do I do this and not allow the tree to do the in-place editing as well.
Just handle TVN_BEGINLABELEDIT. Check the HTREEITEM and decide if editing is OK - if not, return TRUE to disable it.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
I'm already enabling/disabling the appropriate tree levels in the OnBeginlabeledit() method, so what would the HTREEITEM structure give me? I only want the right-click menu to allow the in-place editing.
I'm wondering if I should set a flag (kludge) in my OnRename() method and then check for it in the OnBeginlabeledit() method.
|
|
|
|
|
What is meaning of the "X" in "AFX"?
Thanks.
Maer
|
|
|
|
|
"Application FrameworX" AFAIK
Cheers
Steen.
"To claim that computer games influence children is rediculous. If Pacman had influenced children born in the 80'ies we would see a lot of youngsters running around in dark rooms eating pills while listening to monotonous music"
|
|
|
|
|
Thanks my pal.
What I do not understand is the meaning of "X"?
Can you help?
Thanks.
Maer
|
|
|
|
|
Let me look this up in "MFC Internals", but I'm pretty sure that the X doesn't mean anything. It's just a sexy way of pronouncing the last two letters in Frameworks - that's why I wrote "Application FrameworX" (not the capital A, F and X). Anyway, it's just an old name for MFC (actually I don't think MFC was ever called AFX - it was just the name it had during development. That's why you only see it in the source code").
Cheers
Steen.
"To claim that computer games influence children is rediculous. If Pacman had influenced children born in the 80'ies we would see a lot of youngsters running around in dark rooms eating pills while listening to monotonous music"
|
|
|
|
|
Thanks for helping me again, my pal.
You help me a lot.
Can you tell me where to look up the "MFC Internals"? Thanks again.
Best regards.
Maer
|
|
|
|
|
You can find it at e.g. bn.com:
http://shop.barnesandnoble.com/booksearch/isbnInquiry.asp?userid=2UPJYZHY8L&mscssid=R1MRPQRSKSG98HC7MAD52TTXG63R2M1F&isbn=0201407213
It's by George Shepherd & Scot Wingo, and it's a must-must for MFC developers. It only covers the MFC that came with VC++ 4.0, but it's still valid. You can also try Mike Blaszczak's "Professional MFC with Visual C++ 6.0":
http://shop.barnesandnoble.com/booksearch/isbnInquiry.asp?userid=2UPJYZHY8L&mscssid=R1MRPQRSKSG98HC7MAD52TTXG63R2M1F&isbn=1861000154
Haven't got it myself (I bought Kruglinski's "Inside Visual C++ version 4" instead, also excellent), but Blaszczak is the MFC Guru of all Guru's (he was once head of the MFC team at MS).
Cheers
Steen.
"To claim that computer games influence children is rediculous. If Pacman had influenced children born in the 80'ies we would see a lot of youngsters running around in dark rooms eating pills while listening to monotonous music"
|
|
|
|
|
What is the following mean?
The thread 0xFFF16C63 has exited with code -858993460 (0xCCCCCCCC).
The program 'C:\testexitcode\Debug\testexitcode.exe' has exited with code -858993460 (0xCCCCCCCC).
Thanks my pal.
Maer
|
|
|
|
|
The exit code is a number the program returns to the calling process. In the ol' DOS days you could access this code throught the enviroment variable ERRORLEVEL. When you terminate a thread (and the program if it's the program's main thread) through a call to exit, _exit, _endthreadex or ExitThread (or a number of other similar functions that I'm not aware of) you can pass an int which will become the exit code (or, at least for exit, the low-order byte will become the exit code.
The meaning of the exit code is entirely up to the terminating thread. Usually zero indicates normal termination.
Cheers
Steen.
"To claim that computer games influence children is rediculous. If Pacman had influenced children born in the 80'ies we would see a lot of youngsters running around in dark rooms eating pills while listening to monotonous music"
|
|
|
|
|
Thanks my pal.
You help a lot.
Best regards.
Maer
|
|
|
|
|
I'd like to know how to do an alphabetical sort of the items in a CListCtrl
I use LVS_SORTASCENDING as the window style but the problem I have is when the list has more than one column, the InsertItem function doesn't work for items placed in any column other than the first one.
The code I have is:
CListCtrl* pList = (CListCtrl*) GetDlgItem (IDC_LIST1);
pList->InsertColumn(0, "Column1", LVCFMT_CENTER, 100);
pList->InsertColumn(1, "Column2", LVCFMT_CENTER, 100);
pList->SetRedraw(FALSE);
pList->InsertItem(0, "Item0 Column0", 0);
pList->SetItemText(0, 1, "Item0 Column1", 0);
// Insert more items like the one above
pList->SetRedraw(TRUE);
If I use LVS_SORTASCENDING, the first column shows right (well sorted) but the second column doesn't display any item.
Thanks in advance,
|
|
|
|
|
If you're using LVS_SORTASCENDING style, the list control has to insert new item at appropriate location. You can't use the 0 as 1st parameter passed to SetItemText. Instead, pass the value returned by InsertItem - this is the real item index in the list.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
I to all,
does anyone know how to create and subclass a run-time created object?
I must do this without creating a dialog template.
Thanks in advance.
|
|
|
|