|
各位大侠,为什么我用CreateWindow创建的流动条控件没有滚动条控件的特性啊?
其中代码如下:
BOOL CScrollBarEx::CreateScrollBar(HINSTANCE hInstance, HWND hParent, RECT rc, UINT uID)
{
if(NULL == hInstance || NULL == hParent || !uID)
{
return FALSE;
}
DWORD dwStyle = 0;
m_bCreate = TRUE;
m_hWnd = m_hWnd;
m_hWnd = ::CreateWindow(TEXT("Scrollbar"), (LPTSTR)NULL, WS_CHILD | WS_VISIBLE | WS_VSCROLL/* | SBS_VERT*/, rc.left, rc.top,
rc.right - rc.left, rc.bottom - rc.top, hParent, (HMENU)uID, hInstance, NULL);
if(NULL == m_hWnd)
{
return FALSE;
}
::CopyRect(&m_rcScroll, &rc);
::SetWindowLong(m_hWnd, GWL_USERDATA, (DWORD)this);
dwStyle = ::GetWindowLong(m_hWnd, GWL_STYLE);
dwStyle |= SBS_VERT;
::SetWindowLong(m_hWnd, GWL_STYLE, dwStyle);
#ifdef STRICT
m_pfDefaultProc = (WNDPROC)::SetWindowLong(m_hWnd, GWL_WNDPROC, DWORD(ScrollBarSubProc));
#else
m_pfDefaultProc = (FARPROC)::SetWindowLong(m_hWnd, GWL_WNDPROC, DWORD(ScrollBarSubProc));
#endif
// dwStyle |= LVS_REPORT | LVS_OWNERDRAWFIXED | LVS_NOCOLUMNHEADER | LVS_NOSCROLL;// | LVS_SORTASCENDING;
// ::SetWindowLong(m_hWnd, GWL_STYLE, dwStyle);
::MoveWindow(m_hWnd, rc.left, 0, rc.right - rc.left, rc.bottom - rc.top, FALSE);
::ShowWindow(m_hWnd, SW_SHOW);
int x =::SetScrollPos(m_hWnd, SB_CTL, 0, FALSE);
DWORD dw = ::GetLastError(); //dw = 6
return TRUE;
}
在如下函数中执行时:
void CScrollBarEx::GetScrollExInfo(SCROLLINFO *scrollInfo)
{
BOOL b = FALSE;
DWORD dw = 0;
scrollInfo->cbSize = sizeof(SCROLLINFO);
scrollInfo->fMask = SIF_POS;
b = ::GetScrollInfo(m_hWnd, SB_CTL, scrollInfo);
dw = ::GetLastError(); //dw = 1447
b = b;
}
请高手帮忙,谢谢。
|
|