Go4Expert

Go4Expert (http://www.go4expert.com/)
-   MFC (http://www.go4expert.com/forums/mfc/)
-   -   How to make a color to Radio Button and Check Box (http://www.go4expert.com/forums/color-radio-button-check-box-t16457/)

tgm.arjun09 6Mar2009 12:40

How to make a color to Radio Button and Check Box
 
Hi All!!!

On a Dialog window i've made it a colored or Bitmap or Image. And Kept Radio Button and Check Box so We need to change the color of the Check Box and Radio Button according to Dialog Displayed.
I've tried with OnCtlColor Event. but it is working for static control but remaining it's not working.
So plz do the needful.

Thanking You
tgm.arjun

shabbir 6Mar2009 14:08

Re: How to make a color to Radio Button and Check Box
 
Is OnCTLColor Event fired for your controls

tgm.arjun09 9Mar2009 08:19

Re: How to make a color to Radio Button and Check Box
 
Quote:

Originally Posted by shabbir (Post 44015)
Is OnCTLColor Event fired for your controls

OnCtlColor is fired bur it is working for static control. For check box and radio buttons it is not displaying dialog back ground color. Plz can u try and give the information.

Thanking You

shabbir 9Mar2009 09:06

Re: How to make a color to Radio Button and Check Box
 
I just realized you had the thread in the introduction forum and I moved it to MFC/Win32 forum.

If the event is fired it should and just post the code you are working on and we can look into it.

tgm.arjun09 9Mar2009 10:32

Re: How to make a color to Radio Button and Check Box
 
Quote:

Originally Posted by shabbir (Post 44088)
I just realized you had the thread in the introduction forum and I moved it to MFC/Win32 forum.

If the event is fired it should and just post the code you are working on and we can look into it.

Here my code is working if i did like this for radio button and check box and static controls. But i need to change the color of the text for check box and radio buttons.

Code:


BOOL CEx3Dlg::OnInitDialog()
{
br1.CreateSolidBrush(RGB(100,100,100));
}
 
 
HCURSOR CEx3Dlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
 
HBRUSH CEx3Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here

if(nCtlColor == CTLCOLOR_DLG)
{
return br1;
}
else if(pWnd->GetDlgCtrlID()==IDC_CHECK1)
{
//pDC->SetTextColor(RGB(150,150,0));
//pDC->SetBkColor(RGB(100,100,100));
return br1;
}
else if(pWnd->GetDlgCtrlID()==IDC_RADIO1)
{
//pDC->SetTextColor(RGB(150,150,0));
//pDC->SetBkColor(RGB(100,100,100));
return br1;
}
else if(pWnd->GetDlgCtrlID()==IDC_STATIC)
{
pDC->SetTextColor(RGB(100,0,0));
pDC->SetBkColor(RGB(100,100,100));
return br1;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}

q
With
warm regards
tgm.arjun

shabbir 9Mar2009 10:56

Re: How to make a color to Radio Button and Check Box
 
You code is working perfectly fine for me

I did this

Defined a public Brush

CBrush *brush;

in

CTestDlg

which is my Dialog Class

Then Initialized this in constructor

brush = new CBrush(RGB(49,49,49));

And then this goes into

Code:

HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
        if(pWnd->GetDlgCtrlID()==IDC_CHECK1)
        {

                pDC->SetTextColor(RGB(0, 255, 0));
                pDC->SetBkColor(RGB(0, 0, 0));
                return (HBRUSH)(brush->GetSafeHandle());
        }
        HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

        return hbr;
}


tgm.arjun09 10Mar2009 12:45

Re: How to make a color to Radio Button and Check Box
 
Hi,

Thanking you for your concern...

I'm not getting the color text for radio button and check box. Can u check out.
Code:


BOOL CEx4Dlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
CBitmap bmp;
CBitmap* ptrBmpOld;
CDC dcMem;
BITMAP bm;
CRect rect;
int i,j;
int nVer, nHor;
bmp.LoadBitmap(IDB_BITMAP2);
bmp.GetBitmap(&bm);
GetClientRect(rect);
nHor=rect.Width()/bm.bmWidth+1;
nVer=rect.Height()/bm.bmHeight+1;
dcMem.CreateCompatibleDC(pDC);
ptrBmpOld=dcMem.SelectObject(&bmp);
for(i=0;i<nHor;i++)
{
for(j=0;j<nVer;j++)
{
pDC->BitBlt(i*bm.bmWidth,j*bm.bmHeight,bm.bmWidth,bm.bmHeight,&dcMem,0,0,SRCCOPY);
}
}
dcMem.SelectObject(ptrBmpOld);
return TRUE;// CDialog::OnEraseBkgnd(pDC);
}
 
 
 
 
HBRUSH CEx4Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
//HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
HBRUSH brush;
switch(nCtlColor)
{
case CTLCOLOR_BTN:
case CTLCOLOR_STATIC:
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,255));
brush=(HBRUSH)::GetStockObject(NULL_BRUSH);
break;
}
case CTLCOLOR_EDIT:
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetBkColor(RGB(0,0,0));
pDC->SetTextColor(RGB(0,0,255));

brush=(HBRUSH)::GetStockObject(NULL_BRUSH);
return br1;
break;
}
case CTLCOLOR_LISTBOX:
{
pDC->SetBkMode(TRANSPARENT);
brush=(HBRUSH)::GetStockObject(NULL_BRUSH);
break;
}
case CTLCOLOR_SCROLLBAR:
{
pDC->SetBkMode(TRANSPARENT);
brush=(HBRUSH)::GetStockObject(NULL_BRUSH);
break;
}
default:brush=CDialog::OnCtlColor(pDC,pWnd,nCtlColor);

}
if(pWnd->GetDlgCtrlID()==IDC_CHECK1)
{
pDC->SetTextColor(RGB(0,0,0));
//pDC->SetBkColor(RGB(0,0,0));
pDC->SetBkMode(TRANSPARENT);
//brush=(HBRUSH)::GetStockObject(NULL_BRUSH);
return br1;
}
if(pWnd->GetDlgCtrlID()==IDC_RADIO1)
{
pDC->SetTextColor(RGB(255,0,0));
//pDC->SetBkColor(RGB(255,0,0));
pDC->SetBkMode(TRANSPARENT);
//brush=(HBRUSH)::GetStockObject(NULL_BRUSH);
return br1;
}
// TODO: Return a different brush if the default is not desired
return brush;
}


shabbir 10Mar2009 15:14

Re: How to make a color to Radio Button and Check Box
 
Looks like you have some DC messed up and try using the steps I mentioned and see if it works and slowly put in your code and see which one does not work when you put it.

tgm.arjun09 12Mar2009 10:09

Re: How to make a color to Radio Button and Check Box
 
Quote:

Originally Posted by shabbir (Post 44141)
Looks like you have some DC messed up and try using the steps I mentioned and see if it works and slowly put in your code and see which one does not work when you put it.

Hi,
I've tried the above code in VS 6.0 color of the text radio button and check box is changing properly.
But color of the text for radio button and check box is not working.

shabbir 12Mar2009 10:16

Re: How to make a color to Radio Button and Check Box
 
Quote:

Originally Posted by tgm.arjun09 (Post 44252)
text radio button and check box is changing properly.

Quote:

Originally Posted by tgm.arjun09 (Post 44252)
text for radio button and check box is not working.

Could not understand what you meant here.


All times are GMT +5.5. The time now is 12:07.