一个关于Visual C++ 6.0的问题
发布网友
发布时间:2023-08-24 05:32
我来回答
共6个回答
热心网友
时间:2024-12-11 17:58
void CTimeSlider::SetMainWnd(CWnd *wMainWnd)
上面的参数传递中,不应该传递窗口指针,应该传递窗口句柄,实际运行中,窗口指针是会改变的,而句柄会保持不变。
方法是:改为如下形式
void CTimeSlider::SetMainWnd(HWND hWnd)
用到的函数:
hWnd=pWnd->GetSafeHwnd() //取窗口句柄
IsWindow(HWND hWnd) //检测窗口是否存在
热心网友
时间:2024-12-11 17:58
void CTimeSlider::SetMainWnd(CWnd *wMainWnd)
{
m_wMainWnd = wMainWnd;
//获得主窗体
}
void CTimeSlider::OnLButtonDown(UINT nFlags, CPoint point)
{
// Send Message to MainWnd tell him stop the Timer ,wait for new Current Time
m_bLButtomDown = TRUE;
m_wMainWnd->SendMessage(WM_USER_LCLICKTIME,0,0);
//SetTimer(1,1500,NULL);
CSliderCtrl::OnLButtonDown(nFlags, point);
}
void CTimeSlider::OnLButtonUp(UINT nFlags, CPoint point)
{
// Send Message to MainWnd ,tell him display from here
m_bLButtomDown = FALSE;
UINT nCurrentTime;
nCurrentTime = GetPos();
m_wMainWnd->SendMessage(WM_USER_CHANGETIME,(LPARAM) (UINT) nCurrentTime,0);
CSliderCtrl::OnLButtonUp(nFlags, point);
//KillTimer(1);
CSliderCtrl::OnLButtonUp(nFlags, point);
}
热心网友
时间:2024-12-11 17:59
代码太少,无法看出错误.
楼主可以检查一下调用CTimeSlider::SetMainWnd()的地方,要保证此时主窗口已经创建出来.并且正确的获得了主窗口对象的指针.
热心网友
时间:2024-12-11 17:59
是不是你的主窗体的生命期的问题
热心网友
时间:2024-12-11 18:00
把你的源码发给我,我看看,或许能帮你
vipismez@163.com
热心网友
时间:2024-12-11 18:01
staryxg@sina.com