重绘消息是在主框架窗口OnCreate函数之后发送吗
我自定义了消息并在响应函数里做了个一个进度栏在状态栏上在CMainFrame的OnCreate里PostMessage该消息,问题是当窗口发生重绘时进度栏和状态栏的位置就...
我自定义了消息 并在响应函数里做了个一个进度栏在状态栏上
在CMainFrame的OnCreate里PostMessage该消息,问题是当窗口发生重绘时
进度栏和状态栏的位置就会错开 ,于是我做了一个OnPaint响应函数,里面的代码如下:
CRect m_PRect;
m_wndStatusBar.GetItemRect(1,&m_PRect); //1是状态栏里的一个窗格的索引
if(!m_wndStatusBar.m_hWnd)
m_progressctrl.Create(WS_CHILD | WS_VISIBLE ,m_PRect,&m_wndStatusBar,123);
else
m_progressctrl.MoveWindow(m_PRect);
m_progressctrl.SetPos(50);
问题是运行出现错误 是什么问题 请高人指教一下~
一楼我也考虑过 于是我做了一个判断if(!m_progressctrl.m_hWnd) 进度栏是否创建,但问题还是纯在啊
谢谢 我知道错哪了 展开
在CMainFrame的OnCreate里PostMessage该消息,问题是当窗口发生重绘时
进度栏和状态栏的位置就会错开 ,于是我做了一个OnPaint响应函数,里面的代码如下:
CRect m_PRect;
m_wndStatusBar.GetItemRect(1,&m_PRect); //1是状态栏里的一个窗格的索引
if(!m_wndStatusBar.m_hWnd)
m_progressctrl.Create(WS_CHILD | WS_VISIBLE ,m_PRect,&m_wndStatusBar,123);
else
m_progressctrl.MoveWindow(m_PRect);
m_progressctrl.SetPos(50);
问题是运行出现错误 是什么问题 请高人指教一下~
一楼我也考虑过 于是我做了一个判断if(!m_progressctrl.m_hWnd) 进度栏是否创建,但问题还是纯在啊
谢谢 我知道错哪了 展开
展开全部
定义一个用户消息UM_PROGRESS
在OnCreate中加入SendMessage(UM_PROGRESS);(要在状态栏创建之后)
在OnPaint中也加入SendMessage(UM_PROGRESS);
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_MESSAGE(UM_PROGRESS,&CMainFrame::OnProgress)
END_MESSAGE_MAP()
LRESULT CMainFrame::OnProgress(WPARAM wParam,LPARAM lParam)
{
CRect rect;
m_wndStatusBar.GetItemRect(m_wndStatusBar.CommandToIndex(IDS_PROGRESS),&rect);
if(!m_progress.m_hWnd)
{
m_progress.Create(WS_CHILD|WS_VISIBLE|PBS_SMOOTH,rect,&m_wndStatusBar, ID_PROGRESS);
}
m_progress.MoveWindow(&rect);
return 0;
}
在OnCreate中加入SendMessage(UM_PROGRESS);(要在状态栏创建之后)
在OnPaint中也加入SendMessage(UM_PROGRESS);
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_MESSAGE(UM_PROGRESS,&CMainFrame::OnProgress)
END_MESSAGE_MAP()
LRESULT CMainFrame::OnProgress(WPARAM wParam,LPARAM lParam)
{
CRect rect;
m_wndStatusBar.GetItemRect(m_wndStatusBar.CommandToIndex(IDS_PROGRESS),&rect);
if(!m_progress.m_hWnd)
{
m_progress.Create(WS_CHILD|WS_VISIBLE|PBS_SMOOTH,rect,&m_wndStatusBar, ID_PROGRESS);
}
m_progress.MoveWindow(&rect);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询