运行我的程序(一个单文档的界面),然后执行系统的:开始/注销/切换用户,然后重新登陆后,发现我的界面工具栏大小不正确了,如何修改?
我在主界面的OnSize()函数中调用了如下过程(其实就是:设置工具栏按钮的大小和位置):
void CMainFrame::UpdateToolBar(BOOL bRecalc)
{
CRect rect;
SIZE sizeButton,sizeImage;
if(bRecalc)
{
m_sizeMax.cx = 0;
m_sizeMax.cy = 0;
//取得最大尺寸
for (int i=0;i<m_wndToolBar.GetCount();i++)
{
m_wndToolBar.GetItemRect(i,rect);
m_sizeMax.cx = __max(rect.Size().cx, m_sizeMax.cx);
m_sizeMax.cy = __max(rect.Size().cy, m_sizeMax.cy);
}
}
//设置按钮尺寸
sizeButton.cx = 54;//m_sizeMax.cx;
sizeButton.cy = 41;//m_sizeMax.cy;
sizeImage.cx = 32;
sizeImage.cy = 31; CRect wndRect;
m_wndToolBar.GetClientRect(wndRect);
// m_wndToolBar.SetHeight(65);
m_wndToolBar.SetSizes(sizeButton,sizeImage);
// ShowControlBar(&m_wndToolBar,FALSE,FALSE);
// ShowControlBar(&m_wndToolBar,TRUE,FALSE);
m_wndToolBar.RedrawWindow();
}
一般情况下,工具栏按钮的大小和位置和我的要求一样,
可是如果运行我的程序,然后执行切换用户、并重新登陆系统后,工具栏的大小就又是初始的状态了(即工具栏按钮位置就不是我设置的大小和位置了),我想知道,当切换用户重新登陆后,对应用程序界面应该处理哪个消息?我在OnPaint()中进行了拦截,好象没有作用。谢谢~~~