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

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


FWS_ADDTOTITLE & FWS_PREFIXTITLE

ANTONISAMY A MIEL -- antony@cauchy.miel.mot.com
Thursday, May 30, 1996

Env: Visual C++ 4.0/Windows 95
	Have anyone tried using FWS_ADDTOTITLE & FWS_PREFIXTITLE.
	These are undocumented Frame window styles described in
	the Visual C++ Readme(Eratta) help in the Books Online
	(Just search for FWS_ADDTOTITLE or FWS_PREFIXTITLE).

	Although FWS_ADDTOTITLE works, I have problem using
	FWS_PREFIXTITLE. As per the documentation, FWS_ADDTOTITLE
	adds the current filename (or Untitled if no file is open)
	to the Frame Window title and FWS_PREFIXTITLE uses
	the format "Untitled - AppName" instead of 
	"AppName - Untitled". The document also says that by 
	default FWS_ADDTOTITLE is used but does not say anything
	about FWS_PREFIXTITLE. But it can be seen from any
	Appwizard application, the title takes the form 
	"Untitled - AppName". So FWS_PREFIXTITLE may also be
	used by the framework by default. Since I want my title
	to be of the second form, I added the following line to
	my CMainFrame::PreCreateWindow()
		cs.style &= ~FWS_PREFIXTITLE;	
	To make sure that FWS_ADDTOTITLE is set I even did this
		cs.style |= FWS_ADDTOTITLE;
		cs.style &= ~FWS_PREFIXTITLE;
	But this does not work. I also (blindly, without any logic) 
	tried 
		cs.style |= FWS_PREFIXTITLE;
	but no change in my title format.
	Am I missing something?

Thanks is advance,
Antony
antony@miel.mot.com



Frederic Steppe -- FredericS@msn.com
Monday, June 03, 1996

[Mini-digest: 4 responses]

>Env: Visual C++ 4.0/Windows 95
>	Have anyone tried using FWS_ADDTOTITLE & FWS_PREFIXTITLE.
>	These are undocumented Frame window styles described in
>	the Visual C++ Readme(Eratta) help in the Books Online
>	(Just search for FWS_ADDTOTITLE or FWS_PREFIXTITLE).
>
>	Although FWS_ADDTOTITLE works, I have problem using
>	FWS_PREFIXTITLE. As per the documentation, FWS_ADDTOTITLE
>	adds the current filename (or Untitled if no file is open)
>	to the Frame Window title and FWS_PREFIXTITLE uses
>	the format "Untitled - AppName" instead of 
>	"AppName - Untitled". The document also says that by 
>	default FWS_ADDTOTITLE is used but does not say anything
>	about FWS_PREFIXTITLE. But it can be seen from any
>	Appwizard application, the title takes the form 
>	"Untitled - AppName". So FWS_PREFIXTITLE may also be
>	used by the framework by default. Since I want my title
>	to be of the second form, I added the following line to
>	my CMainFrame::PreCreateWindow()
>		cs.style &= ~FWS_PREFIXTITLE;	
>	To make sure that FWS_ADDTOTITLE is set I even did this
>		cs.style |= FWS_ADDTOTITLE;
>		cs.style &= ~FWS_PREFIXTITLE;
>	But this does not work. 

	MDC adds FWS_PREFIXTITLE to the frame window's only if the FWS_ADDTOTILE 
style is set and the application is running under Windows 95 (see Win95 design 
guide to find out why).  This is done in the default 
CFrameWnd::PreCreateWindow(), so you just have to remove this style AFTER the 
call to the base class :

	BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
	{
		BOOL bResult = CFrameWnd::PreCreateWindow(cs);

		cs.style &= ~FWS_PREFIXTITLE;
		return bResult;
	}

>	I also (blindly, without any logic) 
>	tried 
>		cs.style |= FWS_PREFIXTITLE;
>	but no change in my title format.

	In this case, you are just enforcing the fact that FWS_PREFIXTITLE is set !

>	Am I missing something?

	Just a detail, don't worry.


Frederic Steppe (frederics@msn.com)
-----From: "K.V.R.M.Rao" 

MFC code checks for FWS_ADDTOTITLE and if it is set and windows 
version is 4.0 it automatically sets FWS_PREFIXTITLE.

So do the following in your frame window PreCreateWindow
override.

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
 if(CFrameWnd::PreCreateWindow(cs))
 {
  cs.style = cs.style - FWS_PREFIXTITLE;
  return TRUE;
 }
 else
  return FALSE;
}

It will do what you want.

Good Luck.

Rammohan
Optima Software Services Ltd
Hyderabad
INDIA


-----From: Niels Ull Jacobsen 

Use the source Luke.
Doing a Find in Files for FWS_PREFIXTITLE in the MFC source directory
reveals that FWS_PREFIXTITLE is added to the style in CFrameWnd::PreCreat=
eWnd
if you're running on Win95 or Nt 4.0. And it's tested in=20
CFrameWnd::UpdateFrameTitleForDocument.

So just set it *after* calling the base class PreCreateWnd, not before.
Niels Ull Jacobsen, Kr=FCger A/S (nuj@kruger.dk)
Everything stated herein is THE OFFICIAL POLICY of the entire Kruger=20
group and should be taken as legally binding in every respect.=20
Pigs will grow wings and fly.

-----From: Lee Jae Kil 

set style below the base class PreCreateWindow().

CMainFrame::PreCreateWindow(...)
{
	BOOL	bRet = CMDIFrameWnd::PreCreateWindow(...);
	cs.style &= ~FWS_PREFIXTITLE;
	return	bRet;
}

That's ok.

 ----
 Lee, Jae Kil : juria@seodu.co.kr





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