NT4/private/windows/win4help/hcw/setwinco.cpp
2020-09-30 17:12:29 +02:00

149 lines
3.7 KiB
C++

/************************************************************************
* *
* SETWINPO.CPP *
* *
* Copyright (C) Microsoft Corporation 1995 *
* All Rights reserved. *
* *
************************************************************************/
#include "stdafx.h"
#include "resource.h"
#pragma hdrstop
#include "setwinco.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSetWinColor dialog
CSetWinColor::CSetWinColor(WSMAG FAR* pwsmag, CWnd* pParent /*=NULL*/)
: CDialog(CSetWinColor::IDD, pParent)
{
pCallersWsmag = pwsmag;
rgbMain = (pwsmag->grf & FWSMAG_RGBMAIN) ?
pwsmag->rgbMain : 0x00FFFFFF;
rgbNSR = (pwsmag->grf & FWSMAG_RGBNSR) ?
pwsmag->rgbNSR : 0x00FFFFFF;
pbrushMain = new CBrush(rgbMain);
pbrushNSR = new CBrush(rgbNSR);
//{{AFX_DATA_INIT(CSetWinColor)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
CSetWinColor::~CSetWinColor()
{
delete pbrushMain;
delete pbrushNSR;
}
void CSetWinColor::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSetWinColor)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
if (!pDX->m_bSaveAndValidate) { // initialization
SetChicagoDialogStyles(m_hWnd);
}
else { // save the data
if (rgbMain == 0x00FFFFFF)
pCallersWsmag->grf &= ~FWSMAG_RGBMAIN;
else {
pCallersWsmag->grf |= FWSMAG_RGBMAIN;
pCallersWsmag->rgbMain = rgbMain;
}
if (rgbNSR == 0x00FFFFFF)
pCallersWsmag->grf &= ~FWSMAG_RGBNSR;
else {
pCallersWsmag->grf |= FWSMAG_RGBNSR;
pCallersWsmag->rgbNSR = rgbNSR;
}
}
}
BEGIN_MESSAGE_MAP(CSetWinColor, CDialog)
//{{AFX_MSG_MAP(CSetWinColor)
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_BUTTON_NONSCROLL_CLR, OnButtonNonscrollClr)
ON_BN_CLICKED(IDC_BUTTON_SCROLL_CLR, OnButtonScrollClr)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_CONTEXTMENU, OnContextMenu)
ON_MESSAGE(WM_HELP, OnHelp)
END_MESSAGE_MAP()
static const DWORD aHelpIds[] = {
IDC_STATIC_NON_SCROLL, IDH_STATIC_NON_SCROLL,
IDC_BUTTON_NONSCROLL_CLR, IDH_BUTTON_NONSCROLL_CLR,
IDC_STATIC_SCROLL, IDH_STATIC_SCROLL,
IDC_BUTTON_SCROLL_CLR, IDH_BUTTON_SCROLL_CLR,
0, 0
};
LRESULT CSetWinColor::OnContextMenu(WPARAM wParam, LPARAM lParam)
{
::WinHelp((HWND) wParam,
AfxGetApp()->m_pszHelpFilePath,
HELP_CONTEXTMENU, (DWORD) (LPVOID) aHelpIds);
return 0;
}
LRESULT CSetWinColor::OnHelp(WPARAM wParam, LPARAM lParam)
{
::WinHelp((HWND) ((LPHELPINFO) lParam)->hItemHandle,
AfxGetApp()->m_pszHelpFilePath,
HELP_WM_HELP, (DWORD) (LPVOID) aHelpIds);
return 0;
}
HBRUSH CSetWinColor::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
// We change the color of the static text background to match
// the respective window color.
if (nCtlColor == CTLCOLOR_STATIC) {
if (pWnd->GetDlgCtrlID() == IDC_STATIC_NON_SCROLL) {
pDC->SetBkColor(rgbNSR);
return (HBRUSH) pbrushNSR->m_hObject;
}
else if (pWnd->GetDlgCtrlID() == IDC_STATIC_SCROLL) {
pDC->SetBkColor(rgbMain);
return (HBRUSH) pbrushMain->m_hObject;
}
}
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
void CSetWinColor::OnButtonNonscrollClr()
{
CColorDialog clrdlg(rgbNSR, 0, this);
if (clrdlg.DoModal() == IDOK) {
rgbNSR = clrdlg.GetColor();
delete pbrushNSR;
pbrushNSR = new CBrush(rgbNSR);
Invalidate();
}
}
void CSetWinColor::OnButtonScrollClr()
{
CColorDialog clrdlg(rgbMain, 0, this);
if (clrdlg.DoModal() == IDOK) {
rgbMain = clrdlg.GetColor();
delete pbrushMain;
pbrushMain = new CBrush(rgbMain);
Invalidate();
}
}