15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


WM_SIZING problems

Glen Hein -- ghein@nye.nscee.edu
Thursday, November 21, 1996


Environment: Win95, VC++4.2-flat

I'm trying to use WM_SIZING and I'm having about no luck at all.

Basically, I have an application where I want to control the specific
sizes a window can be.  According to previous hellp that I have
received and documentation that I have read, the best way is to use
WM_SIZING.

Here are the appropriate pieces of code that I tried:

(I tried this with the main frame, the child frame, and the view)

BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	// NOTE - the ClassWizard will add and remove mapping macros here.
	//    DO NOT EDIT what you see in these blocks of generated code !
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
	ON_WM_SIZING()	
	// Global help commands
	ON_COMMAND(ID_HELP_FINDER, CMDIFrameWnd::OnHelpFinder)
	ON_COMMAND(ID_HELP, CMDIFrameWnd::OnHelp)
	ON_COMMAND(ID_CONTEXT_HELP, CMDIFrameWnd::OnContextHelp)
	ON_COMMAND(ID_DEFAULT_HELP, CMDIFrameWnd::OnHelpFinder)
END_MESSAGE_MAP()

...

void CMainFrame::OnSizing(UINT nSize, LPRECT lpRect)
{
	TRACE("CMainFrame::OnSizing()\n");
	CMDIFrameWnd::OnSizing(nSize, lpRect);
}

...


	//{{AFX_MSG(CMainFrame)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	// NOTE - the ClassWizard will add and remove member functions here.
	//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG
	afx_msg void OnSizing(UINT nSize, LPRECT lpRect);
	DECLARE_MESSAGE_MAP()


This approach does not work. I have never been able top get one of my
OnSizing() functions to get called.


Using Spy++, I found the Class that is associated with the WM_SIZING
message.  If it helps, here it is:

Afx:400000:b:150e:6:32df

Also, The ClassWizard does not list WM_SIZING as a message.  Does
anybody know what's up with this?


Thanks in advance,
Glen Hein
ghein@nye.nscee.edu




Mike Blaszczak -- mikeblas@nwlink.com
Sunday, November 24, 1996

At 14:06 11/21/96 -0800, Glen Hein wrote:

>Environment: Win95, VC++4.2-flat

You should install the 4.2B patch.  The patch fixes lots and lots
of bugs.  Eventually, you'll end up wasting your time because you've
not installed the patch; MFC 4.2-flat is incompatible with released
versions of Windows 95 and Windows NT system components.

>I'm trying to use WM_SIZING and I'm having about no luck at all.

All of your code looks okay.  I can get similar code that I've
written to be called when I size the main window, but I'm using
4.2B.  Maybe this iwas a bug that was fixed, or maybe there's
something subtle that's wrong with your code that I can't see
(or that I'm looking at but not realizing).

>Also, The ClassWizard does not list WM_SIZING as a message.  Does
>anybody know what's up with this?

Since WM_SIZING was, for a time, Windows 95-specific, it was not put
into ClassWizard.  Visual C++ 4.2 was released at that time, you know--so
it only makes sense that it isn't there.  Some future version of the
product will have it in there, I'm sure.

.B ekiM
http://www.nwlink.com/~mikeblas/
I'm afraid I've become some sort of speed freak.
These words are my own. I do not speak on behalf of Microsoft.




Dong Chen -- d_chen@ix.netcom.com
Sunday, November 24, 1996

I don't know if this will help you since I didn't read your previous
posting. But if you are tracing the sizing of a window. The message pair of:
WM_ENTERSIZEMOVE
WM_EXITSIZEMOVE
can be used.
Add these lines in the message map:
	ON_MESSAGE(WM_ENTERSIZEMOVE, OnEnterSizeMove)
	ON_MESSAGE(WM_EXITSIZEMOVE, OnExitSizeMove)
And declare the functions as:
	afx_msg LRESULT OnEnterSizeMove(WPARAM wParam, LPARAM lParam);
	afx_msg LRESULT OnExitSizeMove(WPARAM wParam, LPARAM lParam);
--
Dong
d_chen@ix.netcom.com





| Вернуться в корень Архива |