看我的程序有什么问题,不能按设计意图改变控件的不同颜色?
// MyCtrlMainWnd.cpp : implementation file
//
#include "stdafx.h"
#include "MyCtrlmainapp.h"
#include "MyCtrlMainWnd.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMyCtrlMainWnd
IMPLEMENT_DYNCREATE(CMyCtrlMainWnd, CFrameWnd)
CMyCtrlMainWnd::CMyCtrlMainWnd()
{
}
CMyCtrlMainWnd::~CMyCtrlMainWnd()
{
}
BEGIN_MESSAGE_MAP(CMyCtrlMainWnd, CFrameWnd)
//{{AFX_MSG_MAP(CMyCtrlMainWnd)
ON_BN_CLICKED(IDM_BUTTON1,OnBtnAllLight)
ON_BN_CLICKED(IDM_BUTTON2,OnBtnAllDeLight)
ON_BN_CLICKED(IDM_BUTTON3,OnBtnShakeHand)
ON_WM_CREATE()
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMyCtrlMainWnd message handlers
int CMyCtrlMainWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
//*
btnAllLight.Create(_T("确 定"),WS_CHILD|WS_VISIBLE ,CRect(547,50,616,80),this,IDM_BUTTON1);
btnAllDeLight.Create(_T("取 消"),WS_CHILD|WS_VISIBLE,CRect(547,100,616,130),this,IDM_BUTTON2);
btnHandShake.Create(_T("放 弃"),WS_CHILD|WS_VISIBLE,CRect(547,150,616,180),this,IDM_BUTTON3);
lblTxt1.Create(_T("文本信息显示框"),WS_CHILD|WS_VISIBLE,CRect(10,4,128,23),this,IDC_STATIC1);
btnFilter.Create(_T("*****这是一个检查框属性的按钮*****"),WS_CHILD|BS_AUTOCHECKBOX|WS_VISIBLE,CRect(243,5,534,22),this,IDM_BUTTON4);
btnGroup.Create(_T("分组按钮"),WS_CHILD|BS_GROUPBOX|WS_VISIBLE,CRect(540,17,623,200),this,IDC_GROUP);
mEdit.Create(WS_CHILD|WS_THICKFRAME|WS_VISIBLE|ES_MULTILINE|ES_READONLY ,CRect(10,25,535,440),this,ID_EDIT);
// */
return 0;
}
void CMyCtrlMainWnd::OnBtnAllLight()
{
}
void CMyCtrlMainWnd::OnBtnAllDeLight()
{
}
void CMyCtrlMainWnd::OnBtnShakeHand()
{
}
BOOL CMyCtrlMainWnd::OnChildNotify(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pLResult)
{
/*
if( message==WM_CTLCOLORBTN)
{
SetTextColor((HDC)wParam,RGB(255,0,0));
SetBkColor((HDC)wParam,RGB(0,255,0));
CBrush bb;
bb.CreateSolidBrush(RGB(0,255,0));
}
*/
return CFrameWnd::OnChildNotify(message, wParam, lParam, pLResult);
}
HBRUSH CMyCtrlMainWnd::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
// TODO: Change any attributes of the DC here
HBRUSH bb;
switch(nCtlColor)
{
case CTLCOLOR_BTN:
pDC->SetTextColor(RGB(255,0,0));
pDC->SetBkColor(RGB(0,255,255));
bb=CreateSolidBrush(RGB(0,255,255));
break;
case CTLCOLOR_EDIT:
pDC->SetTextColor(RGB(0,255,0));
pDC->SetBkColor(RGB(255,0,255));
bb=CreateSolidBrush(RGB(255,0,255));
break;
case CTLCOLOR_STATIC:
pDC->SetTextColor(RGB(0,0,255));
pDC->SetBkColor(RGB(255,255,0));
bb=CreateSolidBrush(RGB(255,255,0));
break;
default:
bb = CFrameWnd::OnCtlColor(pDC, pWnd, nCtlColor);
break;
}
// TODO: Return a different brush if the default is not desired
return bb;
}