Click here to Skip to main content
15,924,935 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Creation of User DSN Pin
RaajaOfSelf3-Mar-03 22:47
RaajaOfSelf3-Mar-03 22:47 
GeneralRe: Creation of User DSN Pin
Bartosz Bien4-Mar-03 12:21
Bartosz Bien4-Mar-03 12:21 
Generaludp packet Pin
summo3-Mar-03 20:12
summo3-Mar-03 20:12 
GeneralRe: udp packet Pin
Mike Nordell4-Mar-03 0:26
Mike Nordell4-Mar-03 0:26 
Generalcombo box item selection Pin
Arungs3-Mar-03 19:30
Arungs3-Mar-03 19:30 
GeneralProblems with a check box Pin
MaTrIX2k23-Mar-03 19:08
MaTrIX2k23-Mar-03 19:08 
GeneralRe: Problems with a check box Pin
Alvaro Mendez4-Mar-03 11:14
Alvaro Mendez4-Mar-03 11:14 
GeneralRe: Problems with a check box Pin
MaTrIX2k24-Mar-03 14:41
MaTrIX2k24-Mar-03 14:41 
this is my code:
IMPLEMENT_DYNAMIC(CAUICheckBox, CButton)
CAUICheckBox::CAUICheckBox()
{
m_bCheckBtn=FALSE;
m_bPressBtn=FALSE;
m_bOldTemp=FALSE;
m_clrHigh=globalData.clrHilite;
m_clrCheck=RGB(0,0,0);//RGB(0,170,170);
m_bSelected=FALSE;
m_Checked = FALSE;

}

CAUICheckBox::~CAUICheckBox()
{
}


BEGIN_MESSAGE_MAP(CAUICheckBox, CButton)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_ERASEBKGND()
ON_WM_MOUSEMOVE()
ON_WM_MOUSEOUT()
ON_WM_KEYDOWN()
ON_MESSAGE(BM_SETCHECK, OnSetCheck)
ON_MESSAGE(BM_GETCHECK, OnGetCheck)

END_MESSAGE_MAP()



// CAUICheckBox message handlers

BOOL CAUICheckBox::OnEraseBkgnd(CDC *pDC)
{
return TRUE;
}
LRESULT CAUICheckBox::OnGetCheck(WPARAM wParam, LPARAM lParam)
{
return m_Checked;
} // End of OnGetCheck

void CAUICheckBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
CDC *pDC=CDC::FromHandle(lpDrawItemStruct->hDC);
CRect m_rcClient=lpDrawItemStruct->rcItem;
UINT m_State=lpDrawItemStruct->itemState;
CBrush cb;
CRect m_rcTemp=m_rcClient;
CPoint pt;
CSize m_Csize;
CString m_szCaption;
COLORREF m_Over=RGB(255,193,111);
CPen cpOver(PS_SOLID,1,RGB(255,193,111));
int iMode=pDC->SetBkMode(TRANSPARENT);
int iExtile=GetButtonStyle(); //obtenemos orientación del texto
CRect m_rcText=m_rcClient;
GetWindowText(m_szCaption);
if(m_szCaption.GetLength() > 1)
m_Csize= pDC->GetTextExtent(m_szCaption);
//de acuerdo a la alineación del texto prepare la ubicación
//del texto para Drawtex y DrawState
if (m_rcClient.Height() > 13)
{
int Dif=m_rcClient.Height()-13;
Dif/=2;
m_rcTemp.top=Dif;
m_rcTemp.bottom=m_rcTemp.top+13;
}
if (iExtile & BS_LEFTTEXT)
{
m_rcTemp.left= m_rcTemp.right-13;
pt=CPoint(m_rcTemp.left,m_rcTemp.top+1);
}
else
{
m_rcTemp.right= m_rcTemp.left+13;
pt=CPoint(m_rcTemp.right+2,m_rcTemp.top+1);
m_rcText.left=m_rcTemp.right+1;
}

//draw frame of checkbox
pDC->FillSolidRect(m_rcTemp,globalData.clrWindow);
pDC->Draw3dRect(m_rcTemp,globalData.clrBtnDkShadow,globalData.clrBtnHilite);//clrBtnLight);
m_rcTemp.DeflateRect(1,1);
pDC->Draw3dRect(m_rcTemp,globalData.clrBtnShadow,globalData.clrBtnFace);
//DrawOrange(pDC,m_rcTemp);
m_rcTemp.DeflateRect(1,1);
if (lpDrawItemStruct->itemState & ODS_DISABLED)
pDC->DrawState(pt, m_Csize, m_szCaption, DSS_DISABLED, TRUE, 0, (HBRUSH)NULL);
else
{
pDC->DrawText(m_szCaption,m_rcText,DT_SINGLELINE|DT_LEFT|DT_VCENTER);
if(lpDrawItemStruct->itemState & ODS_SELECTED||m_Checked)
{
if (m_bOldTemp == TRUE)
DrawCheck(pDC,m_rcTemp);
}
else
{
if (m_bCheckBtn==TRUE && m_bPressBtn==FALSE)
DrawCheck(pDC,m_rcTemp);
else
{
if (m_bOldTemp == TRUE && m_bPressBtn==TRUE)
DrawCheck(pDC,m_rcTemp);
}

}



}

}
void CAUICheckBox::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
SetCheck(m_Checked ? 0 : 1);
CButton::OnKeyDown(nChar, nRepCnt, nFlags);
}
LRESULT CAUICheckBox::OnSetCheck(WPARAM wParam, LPARAM lParam)
{
m_Checked=wParam!=0;
Invalidate();
return 0;
} // End of OnSetCheck
void CAUICheckBox::DrawCheck(CDC* pDC,CRect m_rcTemp)
{
int iMediaAltura=(m_rcTemp.Height()/2)-2;
int iMedioBox= m_rcTemp.Width()/2;
CPen cp(PS_SOLID,1,m_clrCheck);
CPen *pOld=pDC->SelectObject(&cp);
pDC->MoveTo(m_rcTemp.left+1,m_rcTemp.top+iMediaAltura+3);
pDC->LineTo(m_rcTemp.left+3,m_rcTemp.bottom-2);
pDC->MoveTo(m_rcTemp.left+3,m_rcTemp.bottom-2);
pDC->LineTo(m_rcTemp.right-1,m_rcTemp.top+2);

pDC->MoveTo(m_rcTemp.left+1,m_rcTemp.top+iMediaAltura+2);
pDC->LineTo(m_rcTemp.left+3,m_rcTemp.bottom-3);
pDC->MoveTo(m_rcTemp.left+3,m_rcTemp.bottom-3);
pDC->LineTo(m_rcTemp.right-1,m_rcTemp.top+1);

pDC->MoveTo(m_rcTemp.left+1,m_rcTemp.top+iMediaAltura+1);
pDC->LineTo(m_rcTemp.left+3,m_rcTemp.bottom-4);
pDC->MoveTo(m_rcTemp.left+3,m_rcTemp.bottom-4);
pDC->LineTo(m_rcTemp.right-1,m_rcTemp.top);
//pDC->SelectObject(pOld);
}

void CAUICheckBox::PreSubclassWindow()
{
ModifyStyle(0,BS_OWNERDRAW);
m_MouseMgr.Init (m_hWnd);
CButton::PreSubclassWindow();
}

void CAUICheckBox::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CButton::OnLButtonDown(nFlags, point);
m_bPressBtn=TRUE;
m_bOldTemp=m_bCheckBtn;
Invalidate();
UpdateWindow();
}

void CAUICheckBox::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CButton::OnLButtonUp(nFlags, point);
CRect m_rect;
GetClientRect(&m_rect);
SetCheck(m_Checked ? 0 : 1);
if (m_rect.PtInRect(point))
{
if (m_bCheckBtn==TRUE)
m_bCheckBtn=FALSE;
else
m_bCheckBtn=TRUE;
m_bOldTemp=m_bCheckBtn;
m_bPressBtn=FALSE;
m_bSelected =FALSE;
Invalidate();
UpdateWindow();
}


}
void CAUICheckBox::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CButton::OnMouseMove(nFlags, point);
m_MouseMgr.OnMouseMove();

}
void CAUICheckBox::OnMouseOut ()
{
m_MouseMgr.OnMouseOut();
}

Generalhandel and window Pin
aguest3-Mar-03 12:29
aguest3-Mar-03 12:29 
GeneralRe: handel and window Pin
Dave Bryant3-Mar-03 12:39
Dave Bryant3-Mar-03 12:39 
GeneralHELP! Parent-Child Thread Data Problem Pin
Ecom Wang3-Mar-03 12:25
sussEcom Wang3-Mar-03 12:25 
GeneralRe: HELP! Parent-Child Thread Data Problem Pin
Scott H. Settlemier4-Mar-03 9:57
Scott H. Settlemier4-Mar-03 9:57 
General. Pin
aguest3-Mar-03 12:23
aguest3-Mar-03 12:23 
GeneralRe: . Pin
benjymous4-Mar-03 1:15
benjymous4-Mar-03 1:15 
Generalhandel of EditBox and window Pin
aguest4-Mar-03 10:31
aguest4-Mar-03 10:31 
GeneralPbm with Registry function Pin
RaajaOfSelf3-Mar-03 11:46
RaajaOfSelf3-Mar-03 11:46 
GeneralRe: Pbm with Registry function Pin
Brian Shifrin3-Mar-03 12:02
Brian Shifrin3-Mar-03 12:02 
GeneralRe: Pbm with Registry function Pin
RaajaOfSelf3-Mar-03 12:24
RaajaOfSelf3-Mar-03 12:24 
GeneralRe: Pbm with Registry function Pin
Dave Bryant3-Mar-03 12:50
Dave Bryant3-Mar-03 12:50 
GeneralRe: Pbm with Registry function Pin
ramki-kicha3-Mar-03 19:52
sussramki-kicha3-Mar-03 19:52 
GeneralRe: Pbm with Registry function Pin
Jon Hulatt4-Mar-03 3:04
Jon Hulatt4-Mar-03 3:04 
QuestionWindow with Close button but no titlebar Icon? Pin
Aidman3-Mar-03 11:11
Aidman3-Mar-03 11:11 
AnswerRe: Window with Close button but no titlebar Icon? Pin
Zdeslav Vojkovic3-Mar-03 22:36
Zdeslav Vojkovic3-Mar-03 22:36 
GeneralRe: Window with Close button but no titlebar Icon? Pin
Aidman4-Mar-03 5:32
Aidman4-Mar-03 5:32 
QuestionDisplaying a bitmap? Pin
Paddy3-Mar-03 10:30
Paddy3-Mar-03 10:30 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.