|
hi all plz help me
i make a SDI application i dont add any code to it
now i add OncreateClient function in the mainframe class and add code as
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
CSplitterWnd m_wndsplitter;
return m_wndsplitter.Create(this,2,2,CSize(10,10),pContext,WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|SPLS_DYNAMIC_SPLIT,AFX_IDW_PANE_FIRST);
//return CFrameWnd::OnCreateClient(lpcs, pContext);
}
but when i run this no split window is opened
i try by adding an item split in the IDR_MAINFRAME menu but when i run program this split in menu is disabled
but i want to enable it and when i click it a splitter appear to split the window
plz tell me
Ashish Dogra
MCA
Noida
|
|
|
|
|
What's that return written in the mid of your code.
Have you derived classes from CView ?
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
yes sir i derived it from CView but nothing happen
Ashish Dogra
MCA
Noida
|
|
|
|
|
Listen Ashish.
What I told you yesterday was that you would need to derive classes from CView and then use CreateStatic(.....)
For example I am providing a snippet of code for splitting a window in shape of
////////////////////////////////
-------------||-----------------
------1-View-||--------2 View--
-------------||-----------------
-------------||-------------------
=================================
3 View
/////////////////////////////////
m_wndSplitter1.CreateStatic(this,2,1);
m_wndSplitter1.CreateView(1,0,RUNTIME_CLASS(COneView),CSize(200,200),pContext);
m_wndSplitter2.CreateStatic(&m_wndSplitter1,1,2);
m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CTreeDeriv),CSize(200,200),pContext);
m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS(CTwoView),CSize(200,400),pContext);
return TRUE;
///////////////////////////////////
here COneView and CTwoView were the classes that were derived from CView.
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
-- modified at 5:32 Tuesday 4th July, 2006
|
|
|
|
|
sir this code does not work as i run application it doesnot show window and it show error message
Ashish Dogra
MCA
Noida
|
|
|
|
|
What error message is it showing?
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
it show send error or dont send error type message
Ashish Dogra
MCA
Noida
|
|
|
|
|
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
int n_id = AFX_IDW_PANE_FIRST;
if (!m_splitwnd.CreateStatic(this, 1, 2, WS_CHILD|WS_VISIBLE|WS_BORDER, n_id))
{
return FALSE;
}
if (!m_splitwnd.CreateView(0, 0, RUNTIME_CLASS(CView1),CSize(0, 0), pContext) ||
!m_splitwnd.CreateView(0, 1, RUNTIME_CLASS(CView2), CSize(0, 0), pContext))
{
m_splitwnd.DestroyWindow();
return FALSE;
}
m_splitwnd.SetColumnInfo(0, 300, 50);
return TRUE;
}
My Code is runing. You can try.
// with CView1/2 your View
If one of view is CFormView, you check setting Dialog of FormView, Style is Child.
.: Your success is also mine :.
|
|
|
|
|
sorry sir but
sir here it does not work
plz tell me iwa nt to add a menu and when i click on that splitter appear on window
tell me plz
Ashish Dogra
MCA
Noida
|
|
|
|
|
i want to know how to work with Copyfile method
|
|
|
|
|
|
CopyFile(existfile,newfile,if true overwrite file else none);
whitesky
|
|
|
|
|
I have seen how to create ActiveX from Dialog frame as
http://www.codeguru.com/Cpp/COM-Tech/activex/controls/article.php/c2615/
Now, i am finding the way to create ActivX like SDI Application. I seen a sample in
http://www.microsoft.com/mind/0497/mfc.asp
but it not a pop-up SDI window like .exe.
How to create it?
|
|
|
|
|
I use SetWindowRgn button to circular button, but when button redraw, the button rectangle background is show. Why?
Thanks.
|
|
|
|
|
|
Hi guys,
I was wondering how someone would find the Ordinal of an imported function? I am using an API hook function which is below:
PVOID HookImportedFunction(const char *Dll, const char *FuncName, int Ordinal, void *Function)
{
DWORD oldProtect;
void *PrevValue=0;
DWORD image_base = (DWORD)GetModuleHandle(NULL);
IMAGE_DOS_HEADER *idh = (IMAGE_DOS_HEADER *)image_base;
IMAGE_FILE_HEADER *ifh = (IMAGE_FILE_HEADER *)(image_base +
idh->e_lfanew + sizeof(DWORD));
IMAGE_OPTIONAL_HEADER *ioh = (IMAGE_OPTIONAL_HEADER *)((DWORD)(ifh) +
sizeof(IMAGE_FILE_HEADER));
IMAGE_IMPORT_DESCRIPTOR *iid = (IMAGE_IMPORT_DESCRIPTOR *)(image_base +
ioh->DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);
VirtualProtect((LPVOID)(image_base +
ioh->DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress),
ioh->DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].Size, PAGE_READWRITE,
&oldProtect);
while(iid->Name)
{
if(stricmp(Dll, (char *)(image_base + iid->Name)) == 0)
{
IMAGE_THUNK_DATA * pThunk = (IMAGE_THUNK_DATA *)
((DWORD)iid->OriginalFirstThunk + image_base);
IMAGE_THUNK_DATA * pThunk2 = (IMAGE_THUNK_DATA *)
((DWORD)iid->FirstThunk + image_base);
while(pThunk->u1.AddressOfData)
{
char * name = 0;
int ordinal;
if(pThunk->u1.Ordinal & 0x80000000)
ordinal = pThunk->u1.Ordinal & 0xffff;
else
{
IMAGE_IMPORT_BY_NAME * pname = (IMAGE_IMPORT_BY_NAME *)
((DWORD)pThunk->u1.AddressOfData + image_base);
ordinal = pname->Hint;
name = (char *)pname->Name;
}
if(name != 0 && FuncName && strcmp(name, FuncName) == 0)
{
PrevValue = (void*)pThunk2->u1.Function;
#if _MFC_VER == 0x0600
pThunk2->u1.Function = (DWORD*)Function;
#else
pThunk2->u1.Function = (DWORD)Function;
#endif
}
else if(ordinal == Ordinal)
{
PrevValue = (void*)pThunk2->u1.Function;
#if _MFC_VER == 0x0600
pThunk2->u1.Function = (DWORD*)Function;
#else
pThunk2->u1.Function = (DWORD)Function;
#endif
}
pThunk++;
pThunk2++;
}
}
iid++;
}
return PrevValue;
}
However I do not know how to get the Ordinal of a windows API function, say CreateFile or WriteProcessMemory . I know an ordinal of the function MessageBoxA is 476, but I cant find the ordinals of these functions.
Would anyone know how you would find the ordinals?
Thanks,
Robbie
|
|
|
|
|
Maybe the following sample function will give you some ideas?
It returns the ordinal number having the handle of the DLL (from LoadLibrary ) and the address of the exported function (from GetProcAddress ):
WORD getFunctionOrdinal( HMODULE hModule, FARPROC pFunction)
{
if( hModule == 000 || pFunction == 000) return 0;
ULONG export_dir_size;
PIMAGE_EXPORT_DIRECTORY pExportDir =
(PIMAGE_EXPORT_DIRECTORY)ImageDirectoryEntryToData(
hModule,
TRUE,
IMAGE_DIRECTORY_ENTRY_EXPORT,
&export_dir_size
);
if( pExportDir == 000)
{
return 0;
}
LPCSTR const charAddress = (LPCSTR)hModule;
WORD const base = (WORD)pExportDir->Base;
PDWORD const pFunctions = (PDWORD)(charAddress + pExportDir->AddressOfFunctions);
PWORD const pOrdinals = (PWORD)(charAddress + pExportDir->AddressOfNameOrdinals);
DWORD const numberOfFunctions = pExportDir->NumberOfFunctions;
DWORD const numberOfNames = pExportDir->NumberOfNames;
for( DWORD i = 0; i < numberOfFunctions; ++i)
{
FARPROC const fp = (FARPROC)(charAddress + pFunctions[i]);
if( fp == pFunction)
{
return (WORD)(i + base);
}
}
return 0;
}
I hope this helps.
|
|
|
|
|
Thanks Viorel, I'll use that! How do you know so much?
|
|
|
|
|
First of all, excuse my poor English.
I have a program that fails initializing with error 0xC0000005 only if the default printer is a LaserJet Color 2605. If I select a DeskJet as default printer, there is no problem.
The program was made with VC++ 6.0 and was checked with many printers and/or platforms. Problems appeared when I bought my new LaserJet.
Thans,
Enrique Manzano
|
|
|
|
|
You have this error with this type or all
whitesky
|
|
|
|
|
Program runs without problem with plotters, Epson printers, HP LaserJet of many other models, etc. Problems began with HP LaserJet Color 2605DN
Have you any idea?
Thanks
Enrique
|
|
|
|
|
Could you be debug with debugger and one question when you want read printer you get error
whitesky
|
|
|
|
|
With VC++ 6.0, call stack is as follows :
NTDLL! 7c974ed1()
NTDLL! 7c94f8fb()
NTDLL! 7c91eac7()
As you can see, my program hasn't be loaded.
Output window of debugger is:
Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
Loaded symbols for 'D:\fuente32\indalwin 5.0\Proyeccion\Debug\PdfDllD.dll'
Loaded symbols for 'C:\WINDOWS\system32\MFC42UD.DLL'
Loaded symbols for 'C:\WINDOWS\system32\MSVCRTD.DLL'
Loaded 'C:\WINDOWS\system32\gdi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\user32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\opengl32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\msvcrt.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\advapi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\rpcrt4.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\glu32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\ddraw.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\dciman32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\version.dll', no matching symbolic information found.
Loaded 'D:\fuente32\indalwin 5.0\Proyeccion\Debug\Vecad52.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\comdlg32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\shlwapi.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\comctl32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\shell32.dll', no matching symbolic information found.
Loaded 'D:\fuente32\indalwin 5.0\Proyeccion\Debug\bmw.dll', no matching symbolic information found.
Loaded 'D:\fuente32\indalwin 5.0\Proyeccion\Debug\arrgrid.dll', no matching symbolic information found.
Loaded symbols for 'C:\WINDOWS\system32\MFCO42UD.DLL'
Loaded 'C:\WINDOWS\system32\ole32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\oleaut32.dll', no matching symbolic information found.
Loaded symbols for 'C:\WINDOWS\system32\MSVCIRTD.DLL'
Loaded 'C:\WINDOWS\system32\mfc42loc.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9\comctl32.dll', no matching symbolic information found.
Loaded 'C:\Archivos de programa\Logitech\MouseWare\system\LgWndHk.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\msctf.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\winspool.drv', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\spool\drivers\w32x86\3\unidrvui.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\spool\drivers\w32x86\3\hpzui053.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\compstui.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\msimg32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\setupapi.dll', no matching symbolic information found.
First-chance exception in Proyeccionv5.exe (NTDLL.DLL): 0xC0000005: Access Violation.
First-chance exception in Proyeccionv5.exe (NTDLL.DLL): 0xC0000005: Access Violation.
If I choose other printer as default, there is no library "hpzui053.dll" and everything is alright.
Thanks,
Enrique
|
|
|
|
|
Are you sure that you install correct driver printer,i use like you two printer(HP 1220C) and
one virtual printer but it work without problem
whitesky
|
|
|
|
|
I have found the problem:
I use to work in 6 programs. Three have no problems and three went wrong when I bought new printer.
The three with problems also use a library from Kolbasoft (Vecad52.dll). This library was statically linked. I have modified the program to dynamically link this library and EVERYTHING IS ALRIGHT!!!!
Any way, thank you very much for your help.
Enrique
|
|
|
|
|