|
Hi all,
i m working on SDI type splitter application.
i have split my application in one row and two column ,for first column im using CTreeView derived class and for second column i m using CFormView derived class.
in second column i m replace diffrent-2 formview according to need.
its working fine.but at certain point i need to chk which formview is currently visible in second column.
please tell me what function and api use for this.
thanks in advance.
|
|
|
|
|
If you have RTTI enabled (which it is by default) you can use dynamic_cast to check.
dynamic_cast will check the type information and only succeed if it is a valid operation, otherwise return NULL, so to see if a variable is of a type:
if (dynamic_cast<CMyFormView *>(m_pWnd) != NULL) {
} else if (dynamic_cast<CMyTreeView *>(m_pWnd) != NULL) {
}
alternativley, if you are using DECLARE_DYNAMIC or DECLARE_DYNCREATE in your class definitions (should be using DECLARE_DYNCREATE to use it in a spitter if i remember correctly) then you can also check the type information with
if (m_pWnd->GetRuntimeClass() == CMyFormView::GetThisClass()) {
} else if (m_pWnd->GetRuntimeClass() == CMyTreeView::GetThisClass()) {
}
|
|
|
|
|
Andrew Brock wrote: if (m_pWnd->GetRuntimeClass() == CMyFormView::GetThisClass()) { //its a CMyFormView} else if (m_pWnd->GetRuntimeClass() == CMyTreeView::GetThisClass()) { //its a CMyTreeView}
error on GetThisClass()
|
|
|
|
|
That code was from a project made in Visual Studio 9.0 (2008).
The function may have a different name on your version of visual studio, or you may not be using the DECLARE_DYNAMIC or DECLARE_DYNCREATE .
If you are using 1 of the mentioned macros try checking the definition of them to see if the function has a different name. you are looking for a public static function that has the same return type as GetRuntimeClass() , probably CRuntimeClass* .
Otherwise you can just use the dynamic_cast method I described
|
|
|
|
|
Is that possible or all modules should be of the same architecture?
Dll is loaded with LoadLibrary and a function is called.
Чесноков
|
|
|
|
|
Well, up until a few days ago I thought it was impossible, but I noticed that occasionally x64 version of NTDLL was loading the x86 version of NTDLL into a x64 program.
I don't know how it is done, perhaps 1 of the many undocumented APIs.
In the past I have created a x86 helper .exe which loads the DLL, and returns whatever. This can be done with Remote Procedure Call, but I only ever used pipes.
EDIT: It may be loading them for resources rather than code with LoadLibraryEx , which should be allowed
modified on Thursday, January 20, 2011 1:38 AM
|
|
|
|
|
Hi
i am beginner of win32 Vc++. I create Menu item and call File open dialog box. I have a File Menu. it contains Open, save and exit menu items.I have file open dialog box function. Open menu item id is: ID_FILE_OPEN.
my code like
case WM_COMMAND:
switch(wParam)
{
case IDOK:
EndDialog(hWndDlg, 0);
return TRUE;
case IDCANCEL:
EndDialog(hWndDlg, 0);
return TRUE;
case ID_FILE_OPEN:
OnFileOpen(hWnd, ID_FILE_NEW, 0, 0);
break;
}
But error is come like ID_FILE_OPEN' : undeclared identifier
how to fix this?
Regards,
M.Mathivanan
|
|
|
|
|
In your menu in the Resources window you will have specified a value for the menu item File>Open. You can find this value in the properties window (View->Other Windows->Properties Window) and click on the Open item in the file menu in the resource editor.
The value will also be #define 'd in the Resource.h file, so be sure to #include "Resource.h"
|
|
|
|
|
Thanks. i understand. now its working.
|
|
|
|
|
When we press Shift+Delete key, a delete confirmation dialog is generated. I want to handle this dialog according my need or change its message. Can anyone tell me what thing is responsible for that dialog?
I either need to know the code which handles the delete confirmation dialog generated by the Shift+Delete key sequence in Windows XP, or the code by which we can control this operation.
|
|
|
|
|
Take a look at Classic Shell[^]
It replaces the Copy dialog, surely the same principal can be applied to delete
|
|
|
|
|
|
|
Well, firstly you would need to decode the MP3 data. No point reinventing the wheel, just use something like LAME[^]
Then you need to draw it to the screen somehow. If you are using Windows, I might suggest GDI+[^]
The scope is the most basic audio analysis visual to make... all you are essentially doing is displaying the value of the data at each sample, so just draw it like a massive line graph mapping sample number vs. sample value
|
|
|
|
|
For the plotting part, there's a couple of chart controls on CP. You can also have a look at my sig for one of them that I developed.
|
|
|
|
|
Hi,
I deveopled a MFC appliocation using visual studio 2008. It is running fine on double clicking the exe but If I launch the same application using installer (install shield) it is not lanching and producing a exception.
What might be the cause?
|
|
|
|
|
Perhaps an exception code, minidump, memory snapshot, anything could help, attatch the visual studio debugger as a JIT debugger.
|
|
|
|
|
john5632 wrote: it is not lanching and producing a exception
What is the exception ?
modified on Wednesday, January 19, 2011 10:43 PM
|
|
|
|
|
As soon as IO try to launch the application using installer I get the below exception:
Problem Event Name: APPCRASH
Application Name: Myapp.exe
Application Version: 6.3.11.0
Application Timestamp: 4d343707
Fault Module Name: ntdll.dll
Fault Module Version: 6.1.7600.16385
Fault Module Timestamp: 4a5bdb3b
Exception Code: c0000005
Exception Offset: 00038c39
OS Version: 6.1.7600.2.0.0.256.48
Locale ID: 1033
Additional Information 1: 4c0d
Additional Information 2: 4c0d4d78887f76d971d5d00f1f20a433
Additional Information 3: 4c0d
Additional Information 4: 4c0d4d78887f76d971d5d00f1f20a433
|
|
|
|
|
Exception Code: c0000005 is a protection fault. You tried to read/write to a bad memory address. Although it says the error occurred in ntdll, it is most likely an argument you passed into a function in there.
Try attaching a debugger to the process when it is in the crashed state to see the call stack. At a rough guess I would say it is something to do with your command line processing
|
|
|
|
|
But If I run the application using clicking the exe, it is running and same exceptino is coming after quit the application.
But If I run application as Admin, It works fine.
What is the problem?
|
|
|
|
|
Then your code must do something that requires Admin rights (in the Cleanup) and you aren't handling the error properley.
There is a vast number of things that this could be, but there is a fair chance that it is with a file. The Program Files and Windows directory are protected if UAC is enabled (Win Vista/7).
For example, if you open a file in a protected location and try to read it without checking that it is open you may be using invalid data.
|
|
|
|
|
May be you will have to install the VC++ 2008 redistributable as well.
|
|
|
|
|
Although some people define "crash" rather generally, if it was missing the runtimes it would generally show a message saying something like "the application failed to initialize. The application configuration is incorrect"
|
|
|
|
|
That's mean it doesn't work on another machine?
If the answer is yes then you probably have to deploy VC runtime and/or MFC DLL (see, for instance, http://msdn.microsoft.com/en-us/library/8kche8ah(VS.90).aspx[^]).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|