Click here to Skip to main content
11,429,154 members (62,782 online)
Click here to Skip to main content
Add your own
alternative version

A drop-in replacement for MessageBox()

, 4 Jan 2005
Other articles describe replacements for MessageBox() with extra buttons for "Yes to All" and "No to All", but you still have to write the code to handle those buttons. This article presents a class that does all the work for you.
crhyesnotoalldialogapp.zip
CRHYesNoToAllDialogApp.dsp
CRHYesNoToAllDialogApp.dsw
Release
CRHYesNoToAllDialogApp.exe
res
CRHYesNoToAllDialogApp.ico
// CRHYesNoToAllDialogAppDlg.h : header file
//

#if !defined(AFX_CRHYESNOTOALLDIALOGAPPDLG_H__D44EC3A7_E8CA_4232_AE43_8489A279591A__INCLUDED_)
#define AFX_CRHYESNOTOALLDIALOGAPPDLG_H__D44EC3A7_E8CA_4232_AE43_8489A279591A__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CRHYesNoToAllDialogAppDlg dialog

class CRHYesNoToAllDialogAppDlg : public CDialog
{
// Construction
public:
	CRHYesNoToAllDialogAppDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CRHYesNoToAllDialogAppDlg)
	enum { IDD = IDD_CRHYESNOTOALLDIALOGAPP_DIALOG };
	int		v_NumberOfLines;
	CButton		c_CButton_MessageBox;
	CButton		c_CButton_CRHMessageBox;
	CListCtrl	c_TheList;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CRHYesNoToAllDialogAppDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CRHYesNoToAllDialogAppDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnButtonMessageBox();
	afx_msg void OnButtonCWndMessageBox();
	afx_msg void OnButtonCRHMessageBox();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

private:
	void UseMessageBox(int NLines);
	void UseCWndMessageBox(int NLines);
	void UseCRHYesNoToAllDialog(int NLines);
	void PrepareTheQuestion(int i, CString *pCString);
	void CRHInitialiseList();
	void AddToList(int i);
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CRHYESNOTOALLDIALOGAPPDLG_H__D44EC3A7_E8CA_4232_AE43_8489A279591A__INCLUDED_)

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

Chris Hills
Software Developer (Senior)
United Kingdom United Kingdom
I've been programming computers since about 1968. I started at school with Algol 60 on an Elliott 803. From there I progressed through the Z80 and other microprocessors to the PC, DOS and Windows, Pascal, C and C++.

My other interests include astronomy and classical music. All of my contributions to Code Project have arisen from programs I've written in these areas.

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.150428.2 | Last Updated 4 Jan 2005
Article Copyright 2005 by Chris Hills
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid