|
I cannot understand what you said.
However, you cannot change the resolution of a window. You change the resolution of all windows.
Mustafa Demirhan
|
|
|
|
|
I'm posting html from a form to an ISAPI extension. (The form content is html that I put together later to build pages.) When I post just a few lines it is handled correctly and it is inserted into the database. If I send more than a few lines, I get a "page page cannot be displayed" error specifying a dns error. I've even gone as far as replacing all the tags prior to the post and it still fails. The post works with large posts however if the content is html it dies.
Any ideas??
|
|
|
|
|
Hi Ed,
I'm sure there are others here with more hands-on ISAPI experience than I have, but I'll throw in my $.02.
I seem to remember that the automatic parsing routines supplied by MFC have a problem with very long request URLs, as would be generated by a long form post. I believe the solution is to get the raw post data and to parse it manually.
|
|
|
|
|
I have a unique problem that is only showing up when I run Chris's grid control under windows 2000 on a HP Vectra. I can not reproduce in under any other condition.
This involves the Drag Drop registration. On the HP the registration fails on the first call.
Initially it appeared that the window handle was incorrect but this is not the case.
The grid has a proper handle and the drop target is null. In tracing the code (on the HP)
Chris's code
BOOL CGridDropTarget::Register(CGridCtrl *pGridCtrl)
{
if (m_bRegistered)
return FALSE;
// Stop re-entry problems
static BOOL bInProcedure = FALSE;
if (bInProcedure)
return FALSE;
bInProcedure = TRUE;
ASSERT(pGridCtrl->IsKindOf(RUNTIME_CLASS(CGridCtrl)));
ASSERT(pGridCtrl);
if (!pGridCtrl || !pGridCtrl->IsKindOf(RUNTIME_CLASS(CGridCtrl)))
{
bInProcedure = FALSE;
return FALSE;
}
m_pGridCtrl = pGridCtrl;
ASSERT (COleDropTarget::m_hWnd==NULL); // OK HERE
m_bRegistered = COleDropTarget::Register(pGridCtrl); // THis call failes on the HP
bInProcedure = FALSE;
return m_bRegistered;
}
COleDropTraget Code:
BOOL COleDropTarget::Register(CWnd* pWnd)
{
ASSERT_VALID(this);
ASSERT(m_hWnd == NULL); // registering drop target twice?
ASSERT_VALID(pWnd);
LPUNKNOWN lpUnknown = (LPUNKNOWN)GetInterface(&IID_IUnknown);
ASSERT(lpUnknown != NULL);
// the object must be locked externally to keep LRPC connections alive
if (CoLockObjectExternal(lpUnknown, TRUE, FALSE) != S_OK)
return FALSE;
// connect the HWND to the IDropTarget implementation
if (RegisterDragDrop(pWnd->m_hWnd,
(LPDROPTARGET)GetInterface(&IID_IDropTarget)) != S_OK)
// Failure here but when should it not??
{
CoLockObjectExternal(lpUnknown, FALSE, FALSE);
return FALSE;
}
// connect internal data
m_hWnd = pWnd->m_hWnd;
ASSERT(pWnd->m_pDropTarget == NULL);
pWnd->m_pDropTarget = this;
return TRUE;
}
In RegisterDragDrop:
The first argument is the handle to the window that excepts the drop.
Now the trace gets "lost" in the os at this point. On the HP the next viewable code in the call stack following the assert is in a CWnd::Attach with the handle of the grid and it asserts since it is not null. It seems that this should have been the handle to the droptarget.
So what is wrong with the HP's to link in this code or why does it not fail on all platforms???
On other platforms it step right though this section with no problems and all handles appear to the consistent.
I have tried this under win 2k on two other (non-HP) machines and under ME and NT4 on this HP machine and they work fine.
Anyone else having experience with this?
Thanks Mike
|
|
|
|
|
Hi everyone,
I'm just wondering how you change the "Untitled" text found on the top left of a single document frame.
If anyone knows, plmk.
Thanks in advance!
Steve
|
|
|
|
|
Steve,
I'm not sure if you are asking how to change it to something else, or remove it. I'm assuming that you know that it says "Untitled" until the initial document is named while saving. This snippet below tells you how to remove the filename (or 'Untitled') from the Window title
I dug this up from an old copy of the MFC FAQ I had kicking around:
Override the PreCreateWindow() function in your MainFrame class and do the following in it..
cs.style &= ~FWS_ADDTOTITLE ;
You can also set the initial window position (cs.x, cs.y, cs.cx, cs.cy) this way and change your class (cs.lpszClass) this way! Remember to call CFrameWnd::PreCreateWindow at the end...
|
|
|
|
|
The FAQ is available at:
http://msdn.microsoft.com/library/backgrnd/html/msdn_mfcfaq50.htm
|
|
|
|
|
Sam, thanks. I tried the link at www.stingray.com/mfc_faq but it seemed to be broken, I'm happy to find this again in the MSDN.
|
|
|
|
|
The document name can be changed using CDocument::SetTitle. Also see: http://support.microsoft.com/support/kb/articles/q129/0/95.asp
|
|
|
|
|
Does anybody have an advice on how to first locate which drive on a Windows 2000 system is the CD-ROM drive and then how to execute a file on the CD-ROM (the file name is known). I cannot use a CFileDialog in order to have the user specify the drive and file name, it must be done without the user seeing anything.
|
|
|
|
|
Hi Roger,
A simple way could be a loop from "A:\" to "Z:\" in which you call GetDriveType(). Then you may stop at the first DRIVE_CDROM result or collect all CD-ROM drives and then choose the best.
Hope this helps,
Paolo.
|
|
|
|
|
I have a problem setting the colors of my MFC application. I have set the background of my dialog
window with SetDialogBgcolor(); but the border is still using the system colors. How do i set the color
of the border?
Another problem I have is that the little arrow on my ComboBox is also set by the system colors, and I can't find a
way to change it.
I have a slider in my application, wich background changed with SetDialogBgcolor(); but I also want to change the color
of the thing you slide and the area witch it slides on, but I have no clue how and where to change these.
I also need to know how I change the color om my menu.
Thankful for any help =)
/Fredrik
|
|
|
|
|
Hi,
Add the following code to your Dialogs OnPaint() method. If a method like this doesnt exist, you can add it from Class Wizard.
void CYourDialog::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect rect;
GetWindowRect(&rect);
ScreenToClient(&rect);
dc.FillSolidRect(rect, 0x00000000); //set bk color to black
}
I am sorry that i cannot answer your other questions.
Mustafa Demirhan
|
|
|
|
|
Hello,
When you open a CFileDialog, the tree-control displays the folder that is given in the ofn.pszInitialDir string. Once opened, the tree-control displays the folder that is selected by user action.
But how do you force the CTreeCtrl to display another folder by software? I have a class that is derived from CFileDialog. But i don't succeed in making the tree-control display another folder once the dialog is running.
I hope i'm not supposed to fill-up the tree control myself, am i? Since the file dialog has all the functionality to do so. But i don't see any CFileDialog function that can be of any use.
Can someone help me with this one?
Thanx
|
|
|
|
|
I have a CView based class that is dynamically creating CButton, CStatic, etc. child windows. How can I get Print and Print Preview to work with these controls. WM_PRINT doesn't quite work since the scale factors are all wrong.
Help!
|
|
|
|
|
Hi Everyone,
Can you help or suggest me ?
I want to drag/drop objects (IE. circle,ellipse,rectangle and etc.) from my document1 to other documents in MDI application and let it can group/ungroup objects when drop it to the other documents - that it may be menu bar command or tool bar command or whatever
for grouping/ungrouping the objects.
Anyone has the sample or any suggestion for me,please help too.
Regards,
Berm
|
|
|
|
|
You're talking about thousands, if not tens of thousands of lines of code. This isn't a simple proposition. I'd ask yourself if the effort necessary is really required, and if it is, then you best go looking into OLE because that's what drag-n-drop is connected to.
|
|
|
|
|
Thank you very much for your suggestion to the novice such me.
Erik,if I send you the code from my project and let you kindly check it and suggest me,that I am very very appreciative of your help.
If you have any free time and welcome my problem,please tell me too,that I will send you immediately.
Again,please reply me too.
Regards,
Berm Thongin
|
|
|
|
|
i need to use a Modeless dialog box to show an importent
message!
i use the folling code
CWnd Dig;
CWnd *pWnd = new CWnd;
pWnd->CreateEx(WS_EX_CLIENTEDGE,_T("STATIC"),"Prosses is..",
WS_CHILD |WS_POPUP|WS_CAPTION | WS_VISIBLE,310, 310,160,100,m_hWnd,(HMENU)1234);
and i cant move the dialog box at all and i need to be able to do so (how ? ...) !
i need it to be without no batuns....
and i need to know how to use the distroywindow to kill it
wen i need to !
plz.....help me
|
|
|
|
|
If you want to use a modeless dialog then extend your window from CDialog. Here is an example:
CShowMessage *swRem=new CShowMessage();
swRem->Create(IDD_SHOWMESSAGE_DIALOG);
swRem->ShowWindow(SW_SHOW);
Here CShowMessage is a CDialog created by 'New Form' menu that is located in 'Insert' menu. If you want to make it modal just write the following code:
CShowMessage swRem;
swRem.DoModal();
Mustafa Demirhan
|
|
|
|
|
See http://home.socal.rr.com/samhobbs/VC/ModelessDialogs.html for my notes about modeless dialogs.
Unfortunately, what you have here is not a modeless dialog. It is a window that is not a dialog, so Mustafa's reply is also relevant. The easiest solution is to create a dialog as he suggests, and perhaps my notes will help you to show it successfully.
If you wanted to, though, you could create a window and then create a static control in it, but I think it would be best to use a modeless dialog first, then get fancy later. You could use CMiniFrameWnd for the window, though.
|
|
|
|
|
Is it possible in Microsoft Visual C++ to get the build number of an application (e.g. to display it in the About dialog)
Best regards,
Peter de Hon
|
|
|
|
|
Look at documentation on GetFileVersionInfo(), GetFileVersionInfoSize() and VerQueryValue() (to retrieve a VS_FIXEDFILEINFO structure).
I never did it to retrieve the build number, but I suppose you have to find out which are the corresponding bits in the FileVersion or in the ProductVersion.
Hope this helps,
Paolo.
|
|
|
|
|
Env: Vis C++ 6.0 SP3 WIN98 updated.
Doc/view application under debug.
I have a class constructed with CW that consists of standard variable declarations, an array of records of byte arrays that accept serialization and is included in this class, etc.
In the wiz constructed document class, I create this class object with the new operator from within the document constructor:
MFDPreFileDoc::MFDPrefileDoc()
{
CMFD_RCRD* pCMfD_RCRD = new CMFD_RCRD();
}
All works well with the app (static linked exe), pointers, etc.
Under debug, if the app (SDI or MDI) is closed with exit, no problem. Id the app ic closed with the mainframe "X", debug dumps a mem leak error pointing to this new statement.
The CMFD_RCRD has a virtual destructor as does the document itself created by the WIZ. I have tried placing a function in the doc destructor pointing to the CMFD_RCRD destructor, but get an assertion err.
Within the app, there are no errors associated with closing child win views associated with their instances of the relative document instances as indicated by debug, only with the mainframe X end app.
Any ideas? Do I have a real mem leak or is this due to the debug environment?
|
|
|
|
|
Looks like a real leak - once the constructor exits, the app will have no way of deleting the object.
The different behaviors you describe on closing are puzzling. If a document is opened or created, this should leak.
Try a more standard approach? Declare
CMFD_RCRD* m_pCMFD_RCRD;
as a doc class member, call new in the doc constuctor and delete in the destructor, and this 'strange yet puzzling' feature should go away.
|
|
|
|