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

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


Changing the Text of Apply Now Bt

Ravi -- pakalr50@lnhdent.agw.bt.co.uk
Thursday, April 11, 1996


Ravi Writes :
          VC++ (2.0) and Windows NT(3.5)

In my application I need to add a Bt  to the Property Sheet (This bt handles 
the command for all the Property Pages). I  thought  of changing the 
 ApplyNow Bt's Text . I could not locate how I can achieve this. Can anybody 
help me in doing this. Thanks in Advance

Ravi



Erik Heuer -- erik.heuer@ks-t.no
Sunday, April 14, 1996

[Mini-digest: 3 responses]

At 07:13 11.04.96 GMT, Ravi wrote:
>
>Ravi Writes :
>          VC++ (2.0) and Windows NT(3.5)
>
>In my application I need to add a Bt  to the Property Sheet (This bt handles 
>the command for all the Property Pages). I  thought  of changing the 
> ApplyNow Bt's Text . I could not locate how I can achieve this. Can anybody 
>help me in doing this. Thanks in Advance
>
>Ravi
>

Override (using ClassWizard) CPropertySheet::OnCreate if you are using MFC3
or CPropertySheet::OnInitDialog if MFC4.  Add the following:

        CWnd *pWnd = GetDlgItem(ID_APPLY_NOW);
        if (pWnd) pWnd->SetWindowText("Save");  // or whatever text you'd like

However, I would not recommend using this method.  Read the Books Online 
article about using property sheets and especially the part about adding
controls to it, and add your own button in OnCreate.

        
Erik Heuer, Kongsberg Simulation & Training, 3600 Kongsberg, Norway
E-mail: erik.heuer@ks-t.no  Phone:(+47) 32735766 Fax:(+47) 32736965

-----From: beriksen@cda.com

     given that pPropertySheet is a pointer to your property sheet, you can 
     use the following code (I think):
     
     CString strApplyNowButtonText;
     strApplyNowButtonText = "My Apply Now Button Text";
     pPropertySheet->SetDlgItemText(ID_APPLY_NOW,strApplyNowButtonText);
     
     This works in VC++4.0/Win95/WinNT/Win32s, but I'm not sure that it'll 
     work in vc++2.0.  You can grep the msdev\include directory for 
     ID_APPLY_NOW and see if it's there.  If it is, this should all work.
     
     Brian Eriksen
     CDA/Wiesenberger
     beriksen@cda.com


-----From: Charles Jowett 

I use the following code to rename the apply button in my application.  

BOOL CHistorianPropertySheet::OnInitDialog() 
{
  // Activate and change the title of the apply button.
  CWnd *RefreshButton = GetDlgItem( ID_APPLY_NOW );
  RefreshButton->SetWindowText( "Refresh" );
  RefreshButton->EnableWindow( TRUE );

  return CPropertySheet::OnInitDialog();
}

Charles
jowett_charles@waters.com



Vincent Mascart -- 100425.1337@compuserve.com
Tuesday, April 16, 1996

>From: 	"Pakala, Ravi"
>Sent: 	dimanche 14 avril 1996 2:05
>Subject: 	Changing the Text of Apply Now Bt
>
>Ravi Writes :
>          VC++ (2.0) and Windows NT(3.5)
>
>In my application I need to add a Bt  to the Property Sheet (This bt handles 
>the command for all the Property Pages). I  thought  of changing the 
> ApplyNow Bt's Text . I could not locate how I can achieve this. Can anybody 
>help me in doing this. Thanks in Advance
>
>Ravi

Here is a sample code I use to change the apply button to a preview button. I
placed the code in the .cpp file of my CPropertySheet derived class (CPESheet) :

#ifndef IDC_PREVIEW
#define IDC_PREVIEW 100
#endif

...

BEGIN_MESSAGE_MAP(CPESheet, CPropertySheet)
	//{{AFX_MSG_MAP(CPESheet)
	ON_BN_CLICKED(IDC_PREVIEW, OnPreview)
	ON_WM_ACTIVATE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPESheet message handlers

void CPESheet::OnPreview()
{
	// Execute preview code ...
}                                   

void CPESheet::UpdateButtons()
{
	CWnd* pApply = GetDlgItem(ID_APPLY_NOW);
	if(pApply!=NULL)
	{
		CRect rect;
		pApply->GetWindowRect(&rect);
		ScreenToClient(&rect);
		m_PreviewBtn.Create("&Preview", BS_PUSHBUTTON | WS_CHILD |
WS_VISIBLE | WS_TABSTOP, 
							rect, this, IDC_PREVIEW);
		m_PreviewBtn.SetFont(pApply->GetFont());
		pApply->DestroyWindow();
	}
}

void CPESheet::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) 
{
	CPropertySheet::OnActivate(nState, pWndOther, bMinimized);
	
	UpdateButtons();
}

HTH.

Vincent Mascart - Little Indian sprl
100425.1337@compuserve.com





David Ohlssen -- DAVIDO@COMMERCE.CTECH.AC.ZA
Friday, April 19, 1996

Vincent,

I like your idea (seems brilliant), but just a tiny 2c:
It looks like you have edited between the forbidden comments!  You
may not see a problem until the day you have to delete and rebuild
the .clw file.   Meantime, class wiz thinks that the code is still
the way it left it :<.   Also it maybe doesn't know what IDC_PREVIEW 
is. Suggest move the OnPreview line to below the //}}AFX_MSG_MAP but
still within the message map.   (One should obviously not override the 
Apply function, or delete it officially in the wiz if you have 
overridden it.)

> Here is a sample code I use to change the apply button to a preview button. I
> placed the code in the .cpp file of my CPropertySheet derived class (CPESheet) :
> 
> #ifndef IDC_PREVIEW
> #define IDC_PREVIEW 100
> #endif
> 
> ...
> 
> BEGIN_MESSAGE_MAP(CPESheet, CPropertySheet)
>     //{{AFX_MSG_MAP(CPESheet)
>     ON_BN_CLICKED(IDC_PREVIEW, OnPreview)
>     ON_WM_ACTIVATE()
>     //}}AFX_MSG_MAP
> END_MESSAGE_MAP()

David O. Ohlssen
I  _____________________________________  I
I  | Davido@Commerce.CTech.ac.ZA       |  I
I  |    __  ____________               |  I
I  |   /  \/ Cape Town  \  _           |  I
I  |__/     South Africa \/ \__________|  I
I_________________________________________I




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