标题:请教 clistctrl 刷新的问题
取消只看楼主
wenmhappy
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-7-30
结帖率:0
已结贴  问题点数:20 回复次数:0 
请教 clistctrl 刷新的问题
各位高手:

    我在开发时遇到clistcrl表头不能正常刷新的问题:


开发环境:vs2008  mfc sdi

代码如下(简化的)

class CMainFrame : public CFrameWndEx
{
   
protected: // 仅从序列化创建
    CMainFrame();
    DECLARE_DYNCREATE(CMainFrame)

// 属性
protected:
    CSplitterWnd m_wndSplitter;
   
        ...

};

OOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,    CCreateContext* pContext)
{
    if (!m_wndSplitter.CreateStatic(this, 2, 1))
        return FALSE;

    //
    if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CMyView), CSize(0, 400), pContext) ||
        !m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CMyView2), CSize(0, 0), pContext))
    {
        m_wndSplitter.DestroyWindow();
        return FALSE;
    }
}

// CMyView2 和CMyView 类似

class CMyView: public CView
{
    DECLARE_DYNCREATE(CMyView)

        CXListCtrl m_listCtrl;    // 派生自 CListCtrl,来自一个开源的控件(老外写的)

protected:
    CMyView();           // protected constructor used by dynamic creation
    virtual CMyView();

        ...
};

int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CView::OnCreate(lpCreateStruct) == -1)
        return -1;

    // TODO:  Add your specialized creation code here
    if (!m_listCtrl.Create(WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN
        | LVS_REPORT | LVS_SHAREIMAGELISTS | LVS_EDITLABELS,
        CRect(0,0,800,150), this, IDC_LISTCTRL))
    {
        TRACE0("Failed to create list control.\n");
        return -1;
    }
   
        m_listCtrl.SetFocus();
        
        // 插入表头
        ....

}

void CMyView::OnSize(UINT nType, int cx, int cy)
{
    CView::OnSize(nType, cx, cy);

    // TODO: Add your message handler code here
    m_listCtrl.MoveWindow(0, 0, cx, cy);   
}


问题:

当程序启动窗口是最大时,列表的头会显示一下后又被擦了,用鼠标滑过才会再显示,但如果启动时窗口不是最大化就不会有这种现象。
不知何故?在 CMyView::OnCreate()里加了一句 m_listCtrl.SetFocus(); 可以解决,但在win7上不可靠,有时正常有时还是会显示一次
表头,然后被擦掉。


请教高手。
搜索更多相关主题的帖子: public return 开发 
2013-07-30 10:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-418230-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054877 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved