Problem mit SetFocus

CodeFatal

Erfahrenes Mitglied
Hi, und schon wieder ich.

Heut ist einfach der Wurm drin...

Ich weiss dieses Thema wurde schon vor kurzem angesprochen nur leider find ich immer noch nicht die Lösung, obwohl die eigentlich klar ist...

Ziel:
ich will einen Button(CheckButton) dazu überreden, auf die SetFocusMsg zu reagieren.

Dazu habe ich folgendes gemacht:
Code:
int CMyDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
...
//Das BS_NOTIFY Flag sollte nach MSDN die Freigabe der Msg's aktivieren
	m_Check.Create(_T(""), WS_CHILD|WS_VISIBLE|WS_TABSTOP|BS_AUTOCHECKBOX|BS_OWNERDRAW|BS_NOTIFY, r, this, START_ID_CHECK);
...
}


BEGIN_MESSAGE_MAP(CProjekt495Dlg, CDialog)
	//{{AFX_MSG_MAP(CProjekt495Dlg)
...
	ON_NOTIFY(BN_SETFOCUS, START_ID_CHECK, OnSetfocusCheck)
...
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

void CMyDlg::OnSetfocusCheck()
{
...
}
Mit den anderen Msg's klappt es einwandfrei... Vielleicht find ich deshalb den Fehler nicht...
Zu erwähnen ist vielleicht noch, das ich mit embedded c++ 4.0 arbeite.
In der dazugehörigen MSDN wird nichts gegen das vorgehen gesagt...
Der Compiler meldet 0Fehler 0Warnungen

Für nen Wink mit dem Zauhpfahl wär ich echt dankbar

Gruss Michael
 
Zuletzt bearbeitet:
Moin moin,
Neuer Tag neues Glück:-)

Für alle nachfolgenden:

Überladet die OnLButtonDown von CButton, bzw wie in meinem Fall leitet die Klasse CButton ab und schreibt ne eigene Memberfunktion.

Hab bei mir jetzt folgenden Code hinzugefügt
Code:
void CMyButton::OnLButtonDown(UINT nFlags, CPoint point)
{
	SetCheck((GetCheck() == BST_CHECKED)?BST_UNCHECKED:BST_CHECKED);
	CRect r;
	GetClientRect(&r);
	InvalidateRect(&r,TRUE);

	CButton::OnLButtonDown(nFlags,point);
}

So es wenigstens so wie ich es will...

Auf einen erfolgreichen Tag ;)
Gruss Michael
 
Zurück