|
I guess I misunderstood what you were after. I do not know of a way of removing that little context menu. I guess you could try hooking the Save As dialog and then intercepting the right-click message.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
// ----------------------------------------------------------------------------------------------
// myfiledialog.h
// ----------------------------------------------------------------------------------------------
#pragma once
#include "afxdlgs.h"
class CMyFileDialog :
public CFileDialog
{
public:
CMyFileDialog(void);
~CMyFileDialog(void);
virtual BOOL OnInitDialog();
};
// ----------------------------------------------------------------------------------------------
// end myfiledialog.h
// ----------------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------------
// myfiledialog.cpp
// ----------------------------------------------------------------------------------------------
#include "stdafx.h"
#include "myfiledialog.h"
#include "resource.h"
CMyFileDialog::CMyFileDialog() : CFileDialog(FALSE,0,0,OFN_EXPLORER|OFN_PATHMUSTEXIST|
OFN_HIDEREADONLY|OFN_LONGNAMES|OFN_OVERWRITEPROMPT| OFN_CREATEPROMPT)
{
}
CMyFileDialog::~CMyFileDialog()
{
}
BOOL CMyFileDialog::OnInitDialog()
{
CFileDialog::OnInitDialog();
GetParent ()->ModifyStyleEx(WS_EX_CONTEXTHELP, 0);
return TRUE; // return TRUE unless you set the focus to a control
}
// ----------------------------------------------------------------------------------------------
// end myfiledialog.cpp
// ----------------------------------------------------------------------------------------------
I hope this helps.
Regards,
Mike
|
|
|
|
|
Just out of curiosity, why derive a class from CFileDialog rather than just create an instance of it?
UINT_PTR CALLBACK OFNHookProc( HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam )
{
return 0 or 1;
}
CFileDialog fd(FALSE, 0, 0,
OFN_ENABLEHOOK | OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_LONGNAMES | OFN_OVERWRITEPROMPT | OFN_CREATEPROMPT);
fd.m_ofn.lpfnHook = OFNHookProc;
fd.DoModal();
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
The application I'm working with uses a CFileDialog format, except for 2 buttons that have been added to the dialog. This is the reason for deriving from CFileDialog.
Anyway, after trying your code, I'm still seeing the "What's This?" menu. When I debug your code, and set a breakpoint in OFNHookProc, the breakpoint is reached several times, but is never reached when I click on a button using the secondary mouse button. When I click on a button using the secondary mouse button, the "What's This?" menu appears. I tried both return values (0 and 1 from function OFNHookProc) with no success.
Regards,
Mike
|
|
|
|
|
Michael Adamus wrote: Anyway, after trying your code, I'm still seeing the "What's This?" menu.
I simply provided you a starting point. You'll need to do some research in order to fill in the blanks. There are no guarantees that this will work, but at least you'll have found one more way that doesn't. You can use Spy++ to see the relationships of that dialog. The hook procedure is actually for the child dialog of the main dialog. You can even customize the child dialog by providing your own template.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
OK, thank you for your time and effort. Hopefully, I'll be able to figure out how Spy++ works by doing my own research.
Regards,
Mike
|
|
|
|
|
Hello all,
I have an application in MFC single document and i want to put a ".jpg" picture as a background and over there, want to drawing some handwriting text. Background always fixed, handwritten text always change when i open a text file. Text file contains some pixel value, and i draw some text depend upon that values.
Please help me.
Thanks to all
Shaheen
|
|
|
|
|
Hello.
First of all, have you read this[^] yet? If no, do it now, if yes, you should know by now that if you don't ask specific questions then you are not likely to get usefull answers. Noone will tell you here how to write an application that will perform what you want. Try to do it and when you get stuck with it, come here and ask, "i did this and that and this and that happens, any ideas why and how to do it right?" instead of "Hey, i want to write a program, so tell me how.". Good luck with your project.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> Life: great graphics, but the gameplay sux. <
|
|
|
|
|
Shaheen.India wrote: I have an application in MFC single document and i want to put a ".jpg" picture as a background...
Does this help?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
I use a window with horicontal+vertical ruler from COXRuler and COXRulerOrganizer class (Ultimate Toolbox).
Both start in the left upper corner with the origin. The values on the horicontal ruler grows from left to right. I need a possiblity to change the origin from the horicontal ruler to the right side, so that the values grows from right to left.
It would be a great help for me, if there is somebody with more experience or an idea for a workaround.
Coach Greg
|
|
|
|
|
I'm trying to take an existing class and add a member function to it. Something like this:
class baseclass {
public:
baseclass();
baseclass(int i);
~baseclass();
public:
int a() {
int b() {
}
class derived : public baseclass {
public:
derived() : base();
derived(int i) : base(i);
public:
int sum() { return baseclass->a() + baseclass->b(); };
} I know I have to explicitly declare the constructors, but I'm under the impression that a() and b() are inherited without further effort. Which means if I create an object derived d , then int i = d.a(); is a valid expression.
Do I have to "explicitly inherit" a() and b() in order to use them in sum() ?
I've been all over the documentation and the articles here, but can't seem to track this down.
More nooB questions, I know - any help is appreciated.
MZR
|
|
|
|
|
no need to any further steps. as you've publically inherited from base class, the public and protected attributes and functions are part of derived class.
<blockquote class="FQ"><div class="FQA">Mike the Red wrote:</div>int sum() { return baseclass->a() + baseclass->b(); }; // I DO know it's not done like this...</blockquote>
It should be
int sum() { return baseclass::a() + baseclass::b(); };
is it really not possible for you to call d.a()? what's the problem you're facing?
-Sarath.
"Great hopes make everything great possible" - Benjamin Franklin
|
|
|
|
|
Mike the Red wrote: Do I have to "explicitly inherit" a() and b() in order to use them in sum() ?
I've been all over the documentation and the articles here, but can't seem to track this down.
What's wrong with:
class baseclass
{
public:
baseclass(){}
baseclass(int i){}
~baseclass(){}
public:
int a() {return 1;}
int b() {return 2;}
};
class derived : public baseclass
{
public:
derived(){}
derived(int i):baseclass(i){}
public:
int sum()
{
return a() + b();
}
};
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
...Error Between Keyboard and Chair... I get a lot of these...
Thanks, guys!
|
|
|
|
|
Hi
I created a CWnd derived class.
pPreviewWindow = new CMyWindow(this, bitmap);
CRect rc;
pStatic->GetWindowRect(rc);
pPreviewWindow->Create("", "", WS_CHILD| WS_VISIBLE, CRect(rc.left,rc.top,rc.bottom,rc.right), this, 1234);
....
pPreviewWindow->Invalidate();
The "Invalidate" (and other functions) will cause ASSERT(::IsWindow(m_hWnd))" fails.
How can I resolve it?
Best regards,
|
|
|
|
|
transoft wrote: The "Invalidate" (and other functions) will cause ASSERT(::IsWindow(m_hWnd))" fails. How can I resolve it?
Have you checked that Create() was successful?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
Hi
I just checked the Create return value. It is "0". Why would this happen?
I created this class using VS2005 class creation wizard. It looks like:
class CBitmapWindow : public CWnd
{
DECLARE_DYNAMIC(CBitmapWindow)
public:
CBitmapWindow();
CBitmapWindow(CWnd* pParent, HBITMAP hBitmapIn);
virtual ~CBitmapWindow();
protected:
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnPaint();
};
pPreviewWindow = new CBitmapWindow(this, pCompatDev->GetBitmap());
BOOL ret = pPreviewWindow->Create("wert", "wert", WS_CHILD| WS_VISIBLE, CRect(rc.left,rc.top,rc.bottom,rc.right), this, 1234);
---------------------------------------
I just checked create format:
virtual BOOL Create(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CCreateContext* pContext = NULL
);
Must I give "UINT nID" a number or not? If I have no ID number, what should I input here?
Best regards,
modified on Wednesday, July 8, 2009 7:05 PM
|
|
|
|
|
You've to pass a valid class name to the Create function.
Either you can pass some standard window class[^] names
or register your own class name using AfxRegisterWndClass function and pass the name to the Create function
-Sarath.
"Great hopes make everything great possible" - Benjamin Franklin
|
|
|
|
|
Where can I find them ? I want to go back in time and have on my hand those tools even if I can get them on a virtual machine.
Can you help me fulfill that wish ?
Easy Profiler : a compile-time profiler for C++
www.potatosoftware.com
|
|
|
|
|
Probably MSDN has both. You need a subscription though.
I was wrong.
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]
modified on Wednesday, July 8, 2009 11:31 AM
|
|
|
|
|
How are you Pallini. It has been long since we were in touch. I do have an MSDN subscription. I will check on that.
Easy Profiler : a compile-time profiler for C++
www.potatosoftware.com
|
|
|
|
|
I've not ever seen Windows v3.0 in MSDN, and the last VC++ I had with my subscription was 1.52c.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
You're right, indeed, and my guess was wrong.
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]
|
|
|
|
|
Is it really possible to download an unsupported product (especially OS) even we've an MSDN subscription? I think even Visual C++ 6.0 is not possible to download. (Sorry I don't have any MSDN subscription)
-Sarath.
"Great hopes make everything great possible" - Benjamin Franklin
|
|
|
|
|
As David Crow pointed out, MSDN has NOT OP's requested OS and compiler.
Sarath. wrote: Is it really possible to download an unsupported product (especially OS) even we've an MSDN subscription? I think even Visual C++ 6.0 is not possible to download.
You're right about Visual C++ 6.0 : it isn't available on MSDN , anyway Visual Basic 6.0 it still available there and, AFAIK, it is an unsopported product too.
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]
|
|
|
|