Imam problem i treba mi hitno ppomoc...
Koristim Visual C++ 2003 i imam sledeci problem...
Definisem u header-u:
#define WM_TRAY_MESSAGE (WM_USER + 1)
afx_msg void OnTrayNotify(WPARAM wParam, LPARAM lParam);
U cpp fajlu mi se nalaze funkcije:
afx_msg void CsystrayDlg::OnTrayNotify(WPARAM wParam, LPARAM lParam)
{
UINT uID;
UINT uMsg;
uID = (UINT) wParam;
uMsg = (UINT) lParam;
if (uID != 1)
return;
CPoint pt;
switch (uMsg )
{
case WM_LBUTTONDOWN:
GetCursorPos(&pt);
ClientToScreen(&pt);
OnTrayLButtonDown(pt);
break;
case WM_RBUTTONDOWN:
case WM_CONTEXTMENU:
GetCursorPos(&pt);
OnTrayRButtonDown(pt);
break;
}
return;
}
void CsystrayDlg::OnMinimize(void) // Ovo mi se odradi na klik dugmeta
{
m_TrayData.cbSize = sizeof(NOTIFYICONDATA);
m_TrayData.hWnd = this->m_hWnd;
m_TrayData.uID = 1;
//m_TrayData.uCallbackMessage = WM_TRAY_MESSAGE;
m_TrayData.hIcon = this->m_hIcon;
strcpy(m_TrayData.szTip,"Vremensko gasenje racunara ...");
m_TrayData.uFlags = NIF_ICON|NIF_MESSAGE;
BOOL bSuccess = FALSE;
BOOL BSus = FALSE;
BSus = m_menu.LoadMenu(IDR_MENU1);
if(!(BSus))
MessageBox("Unabled to Load menu");
bSuccess = Shell_NotifyIcon(NIM_ADD,&m_TrayData);
if(!(bSuccess))
MessageBox("Unable to Set Tary Icon");
else
{
this->ShowWindow(SW_MINIMIZE);
this->ShowWindow(SW_HIDE);
}
}
Gresku mi javi ovdje:
BEGIN_MESSAGE_MAP(CsystrayDlg, CDialog)
ON_MESSAGE(WM_TRAY_MESSAGE ,OnTrayNotify)
END_MESSAGE_MAP()
Greska je sledeca:
error C2440: 'static_cast' : cannot convert from 'void (__thiscall CsystrayDlg::* )(WPARAM,LPARAM)' to 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)'
Program ne radi nista drugo sem minimizira aplikaciju u systray
Koristim Visual C++ 2003 i imam sledeci problem...
Definisem u header-u:
#define WM_TRAY_MESSAGE (WM_USER + 1)
afx_msg void OnTrayNotify(WPARAM wParam, LPARAM lParam);
U cpp fajlu mi se nalaze funkcije:
afx_msg void CsystrayDlg::OnTrayNotify(WPARAM wParam, LPARAM lParam)
{
UINT uID;
UINT uMsg;
uID = (UINT) wParam;
uMsg = (UINT) lParam;
if (uID != 1)
return;
CPoint pt;
switch (uMsg )
{
case WM_LBUTTONDOWN:
GetCursorPos(&pt);
ClientToScreen(&pt);
OnTrayLButtonDown(pt);
break;
case WM_RBUTTONDOWN:
case WM_CONTEXTMENU:
GetCursorPos(&pt);
OnTrayRButtonDown(pt);
break;
}
return;
}
void CsystrayDlg::OnMinimize(void) // Ovo mi se odradi na klik dugmeta
{
m_TrayData.cbSize = sizeof(NOTIFYICONDATA);
m_TrayData.hWnd = this->m_hWnd;
m_TrayData.uID = 1;
//m_TrayData.uCallbackMessage = WM_TRAY_MESSAGE;
m_TrayData.hIcon = this->m_hIcon;
strcpy(m_TrayData.szTip,"Vremensko gasenje racunara ...");
m_TrayData.uFlags = NIF_ICON|NIF_MESSAGE;
BOOL bSuccess = FALSE;
BOOL BSus = FALSE;
BSus = m_menu.LoadMenu(IDR_MENU1);
if(!(BSus))
MessageBox("Unabled to Load menu");
bSuccess = Shell_NotifyIcon(NIM_ADD,&m_TrayData);
if(!(bSuccess))
MessageBox("Unable to Set Tary Icon");
else
{
this->ShowWindow(SW_MINIMIZE);
this->ShowWindow(SW_HIDE);
}
}
Gresku mi javi ovdje:
BEGIN_MESSAGE_MAP(CsystrayDlg, CDialog)
ON_MESSAGE(WM_TRAY_MESSAGE ,OnTrayNotify)
END_MESSAGE_MAP()
Greska je sledeca:
error C2440: 'static_cast' : cannot convert from 'void (__thiscall CsystrayDlg::* )(WPARAM,LPARAM)' to 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)'
Program ne radi nista drugo sem minimizira aplikaciju u systray