m_hWndList = CreateWindowEx(0, WC_LISTVIEW, 
WC_LISTVIEW, 
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | 
LVS_REPORT | LVS_AUTOARRANGE | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS | LVS_SINGLESEL, 
0, 
0, 
rc.right, 
rc.bottom-1, 
m_hWnd, 
NULL, 
GetEmbApp()->GetInstance(), 
NULL 
); 
这样创建了个listview,当加入的数据多过一屏幕的时候,就会有滚动条。我一屏幕显示3个数据,设计好的。 
现在的问题是,当我数据多了的时候比如有8条记录了。 
当我点击右的时候,他移动的是一个字节一个字节移动。这样的话特别慢,点了好就了才移动了一个数据。 
我如何实现让他翻页或者点一下就移动一条数据也行。。 怎么做呢,用什么来响应键盘左右呢? 
我是win32,mobile的。谢谢各位了

解决方案 »

  1.   

    怎么没有人来回答呢?是问的不清楚还是怎么的, 
    消息的响应处理都这么实现呢? 
    case WM_CREATE: 
    { // 创建列头 
    RECT rcMenuBar; 
    GetWindowRect(g_hWndMenuBar, &rcMenuBar); 
    RECT rect; 
    GetClientRect(hWnd,&rect); rect.bottom -= (rcMenuBar.bottom - rcMenuBar.top); 
    hWndList = CreateWindow(WC_LISTVIEW, 
    WC_LISTVIEW, 
    WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | 
    LVS_REPORT | LVS_AUTOARRANGE | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS | LVS_SINGLESEL, 
    0, 
    0, 
    rect.right, 
    rect.bottom-1, // <--这里如果写rect.bottom,就不会响应WM_PAINT了,我是在WM_PAINT里面添加数据,等等的。如何才能做一个真正的自己的listview呢? 
    hWnd, 
    NULL, 
    g_hInst, 
    NULL 
    ); 
    ..... 
    }这样做了,响应的都是主窗口的消息吧,要怎么做才响应自己的呢?
      

  2.   

    消息响应,可以参看本人csdn的博客,里面有具体而比较详尽的介绍.
    listview的scrollbar的处理,请参看潘爱民翻译的<vc++6.0技术内幕>,或<programming windows with MFC>内有示例.