|
OK, so let me rephrase it - when would one use WindowProc in MFC?
|
|
|
|
|
Less than rarely, closer to never. Even with all the knocks on MFC message maps, once you are developing with MFC, I can not think of a reason for not using the maps.
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
posting about Crystal Reports here is like discussing gay marriage on a catholic church’s website.[Nishant Sivakumar]
|
|
|
|
|
Never. MFC has an inbuilt message pump and MessageProc() handler which distributes the messages according to your MESSAGE_MAP entries. If you add your own MessageProc() then you break the connection between those entries and your message handlers.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
I would agree with NEVER... use message maps in MFC. If you find it doesn't do something specific that you needs, that's when you go around the framework, other than that... it's best to try to use the framework that's there.
|
|
|
|
|
Messages use WindowProcs, but MFC handles that for you. There's really very few cases where you'd have to go around what MFC already does. Only reason to code your own WindowProcs would really be if you're doing native Win32 coding.
|
|
|
|
|
These lines are OK
if ( DBT_DEVICEARRIVAL == wParam || DBT_DEVICEREMOVECOMPLETE == wParam ) {
PDEV_BROADCAST_HDR pHdr = (PDEV_BROADCAST_HDR)lParam;
But here the compiler complains about undefined symbol.
PDEV_BROADCAST_DEVICEINTERFACE pDevInf;
All of these are defined in Dbt.h and suppose to work in XP.
<b>So, what else did I missed?</b>
Any help will be appreciated.
Cheers
Vaclav
|
|
|
|
|
1. Please put your code inside <pre> tags.
2. Show the exact code and the compiler error that you get.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
If you open Dbt.h and lookup the definition, you will see that it is enclosed by this condition:
#if(WINVER >= 0x040A)
So check your WINVER definition (usually in stdafx.h). For XP and later it should be 0x0501.
|
|
|
|
|
Thanks,
my Windows OS is XP SP3 ( 5.1) and my VC 6.0 has references only to WINVER 4.0!
I hope I can fix that without screwing things up too much.
Thanks again.
I see that WINVER is set in Windows.h by default - by checking if it is not defined -independent of OS version. I guess my expectations from OS and compiler are little to high.
-- modified 5-Dec-12 15:11pm.
|
|
|
|
|
Because WINVER is used in Windows.h and many other header files, it is set to the smallest supported value in Windows.h if not already defined.
It is a definition that decides which API functions and structures can be used. Which compiler is used does not care. But to use features introduced with newer Windows versions, you must use newer include files from a newer Windows SDK.
|
|
|
|
|
Jochen,
thanks again for your input.
I was just puzzled that the WINVER is defined in Windows.h only if it is not already defined elsewhere. But there is nothing wrong with that and it was a good learning experience for me. I think the main "problem" is that I get involved with coding and assume that the supporting headers are there or are OK.
With all the new IDE's I wish the people who post code here would point out which OS / SP / SDK is required for the code to even compile.
But than one would not learn anything from "mistakes", tough call.
Vaclav
|
|
|
|
|
You are always welcome.
The problem is that you are using an ancient development environment. I have not used VC 6 since many years. At work I'm still using the also outdated Visual Studio 2003 because we need to support Win98 and 2K for some machine control systems.
In 2012 there is no more support for Windows 9x, NT4, and 2000. So there is no need to use old dev software and most here assume that you are using a newer version (VS 2008 or later). In fact you should use a newer version when writing programs for actual Windows versions. Especially VC 6 is too old. With VS 2003 and updated SDKs, I'm at least able to write code for Windows 7.
It is common practice that the actually oldest supported Windows versions is the min. requirement. With your VC 6 version that was Windows 95. For Microsoft and the people here it is actually Windows XP. When reading articles here, just have a look at the publishing date to guess what is supported. Many articles also have a note about the requirements.
I know now that you are using VC 6. For future questions, it may be helpful to add a note that you are using VC 6 so that others are prepared.
|
|
|
|
|
"I know now that you are using VC 6. For future questions, it may be helpful to add a note that you are using VC 6 so that others are prepared."
I have stopped telling people that I am using VC6.0 because they would limit their replies / help to "upgrade to xxxxx".
This is my hobbby now and as retired OF I am reluctant to spent $ every year ( it seems that way) on NEW VS 20xx. ( MFC is not free with VS !) Most of the time I can accomplish what I want with VC6.0, but as you noted not always, and than I look prety stupid with my basic questions.
Personally , I do not care if MS stops supporting their stuff right know. I get very uncomfortable when my XP gets automatically patched without any explanations why!) Even when I was programming proffesionaly I have NEVER used MS support and do not care for it, as you can see I rather look foolish here with my basic questions than pay MS.
|
|
|
|
|
Hi,
Can anyone let me know any good books on Image Processing. I want to implement an algorithm to do some operation on Images (for example ...increasing brightness, Making an Image Blur, Distort an Image etc....).
I want to know the details about Image Processing and to Implement algorithms for Image Processing.
Anybody have any idea about any tutorial or Good books through which to understand the details about Image manipulation.
Regards,
Mbatra
|
|
|
|
|
I believe Cousera.org is providing free course on Image Processing! you might be interested in it.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Since you're asking in the C/C++ forum, you might be interested in this book, by Harley R. Myler and Arthur R. Weeks:
The pocket handbook of image processing algorithms in C
P.S.: You should however consider that most, if not all, of the algorithms described in this book are built into modern graphics chips, or provided via easily obtainable readymade libraries. This is certainly an interesting field if you're interested in, but you're not likely to need that kind of knowledge in any real world project, unless you go into graphics chips design.
|
|
|
|
|
Hello Mbatra,
You might find the following helpful and beneficial:
Castleman, Kenneth R.
Digital image processing.
Chanda, Bhabatosh and Majumder, Dwijesh Dutta
Digital image processing and analysis.
Efford, Nick
Digital Image Processing.
Best of Luck!
Happy Reading!
With Kind Regards,
April
Comm100 - Leading Live Chat Software Provider
modified 27-May-14 8:39am.
|
|
|
|
|
Hello friends
MFC application in which I m creating two Ruler bar which contains different color are object of same class rulerWnd. Now, am handling Mouse procedure on rulerWnd[lButtondown,up,mouseMove] are working Fine If i used to drag and drop some color to same ruler bar.
But If i have to drag some color from one ruler bar to another then it is dropping on same ruler. when i drop on other ruler from first then I checked on LbuttonUp that Point values are coming in negative and its dropping on same ruler even if my mouse LButton ups on another.
How can i handle two Windows mouse procedure at same time.
Any Ideas?
here is sample code that I am trying.
OnLButtonDown(UINT nFlags, CPoint point)
{
case SELECT_COPY:
{
if(m_dwStyle == ruler1|| m_dwStyle == ruler2)
{
GetWindowRect(&rect);
ClipCursor(NULL);
SetCapture();
if(m_szSelectIndexRange.cx>-1 && m_szSelectIndexRange.cy>-1) {
int nSelIndex;
if(m_dwStyle == ruler1)
{
nSelIndex = point.x + m_lScrollPos;
nSelIndex /= fWarpUnit;
}
else
{
nSelIndex = m_nSize-(rect.Height()-point.y)-m_lScrollPos;
nSelIndex /= fWeftUnit;
}
if(nSelIndex >= m_szSelectIndexRange.cx && nSelIndex <= m_szSelectIndexRange.cy)
{
m_bSelectDrag = TRUE;
::SetCursor(AfxGetApp()->LoadCursor(IDC_DRAG_CURSOR));
}
}
}
}; break;
}
OnMouseMove(UINT nFlags, CPoint point)
case SELECT_COPY:
{
if(m_bSelectDrag)
{
CRect rectWnd, invalidRect;
GetClientRect(&rectWnd);
if(m_dwStyle == ruler2)
{
m_lPaintEndPos = point.y; invalidRect = CRect(0, point.y-50- (m_szSelectIndexRange.cy-m_szSelectIndexRange.cx)*m_fStep*pDoc->GetZoomValue(), 22, \
point.y +50);
}
else
{
m_lPaintEndPos = point.x + m_lScrollPos;
invalidRect = CRect(m_lPaintEndPos-50, 0, \
m_lPaintEndPos+50+(m_szSelectIndexRange.cy-m_szSelectIndexRange.cx)*m_fStep*pDoc->GetZoomValue(), 22);
}
InvalidateRect(&invalidRect, FALSE);
}
else SelectStripe(point);
}; break;
OnLButtonUP(UINT nFlags, CPoint point)
case SELECT_COPY:
ClipCursor(NULL);
if(m_bSelectDrag)
{
CopyStripe(point);
m_bSelectDrag = FALSE;
}
else SelectStripe(point);
break;
|
|
|
|
|
As I Come to know that SetCapture is creating problem.I am using setCapture on LButtondown and Releasing it on LButtonUP.
But While dragging, I want to release it as Mouse moved on another ruler2 So that it capture to ruler2 and if mouse come back to ruler1, i want to capture to it.
Any Ideas?
Thanks.
|
|
|
|
|
In LAN,two computers A and B are conected.I compile a function code for share directory set.The program run in A computer.In B computer's addres bar inputting A computer's IP,I can see the directory of shared but DBClicking the folder I cannot enter and system tell me that I don't have the right to get into the folder to perform the edition.
However,my friends in another city and another test environment,can get the true result normal function.
Futhermore,manual setting share directory can be normal but the program setting cannot.At the same time,I find some different points.In editting security policy setting,"Group or user names:" add an item which is "Everyone" in manual setting,but program setting not appear.If this is the reason,how to set in program?
Thanks for all.
DWORD param_err = NERR_Success;
DWORD dwRet=NERR_Success;
TCHAR szMsg[MAX_PATH] ={0};
SHARE_INFO_2 p;
p.shi2_netname = TEXT("TESTSHARE");
p.shi2_type = STYPE_DISKTREE; p.shi2_remark = TEXT("TESTSHARE");
p.shi2_permissions = ACCESS_ALL;
p.shi2_max_uses = -1;
p.shi2_current_uses = 0;
p.shi2_path = TEXT("C:\\WW");
p.shi2_passwd = NULL; dwRet = NetShareAdd(NULL, 2, (LPBYTE) &p, ¶m_err);
if ( dwRet != NERR_Success)
{
_stprintf(szMsg, _T("Add share error %d"), dwRet);
MessageBox(szMsg);
}
else
{
MessageBox(_T("Add share successful."));
}
|
|
|
|
|
Dear all..
I want to create a lab view which can be run on mini2440.
For the Lab view Application i want to use dll. which includes some basic functions.
so which programming language i have to use to create dll.
please help ..
thank you ...
sunil
-- modified 4-Dec-12 10:18am.
|
|
|
|
|
What exactly are you trying to create here, and why do you think you need a DLL before you have even decided what language to code in? And what Operating System will be running on the mini2440 (whatever that may be)?
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Dear sir,
I created a Dll in VC++ and it worked on lab view Appliation,
but when i try to use this same Dll in Lab View Application for mini2440,
i am getting Error..
Please help me,,
How to create dll for mini2440.?
thank you
sunil
|
|
|
|
|
sunil880089 wrote: and it worked on lab view Appliation Waht is a lab View application?
sunil880089 wrote: this same Dll in Lab View Application for mini2440 What is mini2440?
sunil880089 wrote: i am getting Error. Well we cannot guess what that error may be, you will have to tell us.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
I have a pretty large and old application where the user can select the current customer from a combobox. However, the number of customers have grown (>100) to the point where the users think that selecting a customer from the list is awkward.
Does anyone have a good suggestion for a replacement for a CComboBox? The droplist portion should be a multilevel menu or a tree or similar ... I have seen several attempts here and in other places, but they all seem pretty experimental (non-standard UI behaviour, hardcoded drawing functions not utlizing themes, and so on).
|
|
|
|