149 lines
3.7 KiB
C++
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();
|
|
}
|
|
}
|