DBGrid所选择的行不随滚动条滚动而变化
如何固—BGrid选择行的位置??
我找到一个消息调用,不知道如何改,特别是第三个消息看不懂。相信离问题解决就差一步,大家帮看看。
void _fastcall TForm1::GridWindowProc(TMessage &Message)
{
if (Message.Msg == WM_VSCROLL)
{
int nPos = GetScrollPos((HWND)Message.LParam, SB_VERT);
if (Message.WParam == SB_LINEUP)
{
t-> DataSource-> DataSet-> Prior();
Message.Msg = 0;
}
if (Message.WParam == SB_LINEDOWN)
{
t-> DataSource-> DataSet-> Next();
Message.Msg = 0;
}
if (LOWORD(Message.WParam) == SB_THUMBPOSITION ||
LOWORD(Message.WParam) == SB_THUMBTRACK)
{
t-> DataSource-> DataSet-> RecNo = HIWORD(Message.WParam);
return;
}
}
OldGridProc(Message);
}
[解决办法]
void _fastcall TForm1::GridWindowProc(TMessage &Message)
{
if (Message.Msg == WM_VSCROLL)
{
int nPos = GetScrollPos((HWND)Message.LParam, SB_VERT);
if (Message.WParam == SB_LINEUP)
{
//t-> DataSource-> DataSet-> Prior();
Message.Msg = 0;
}
if (Message.WParam == SB_LINEDOWN)
{
//t-> DataSource-> DataSet-> Next();
Message.Msg = 0;
}
if (LOWORD(Message.WParam) == SB_THUMBPOSITION ||
LOWORD(Message.WParam) == SB_THUMBTRACK)
{
//t-> DataSource-> DataSet-> RecNo = HIWORD(Message.WParam);
return;
}
}
OldGridProc(Message);
} //OK!