C++Builder6为TrackBar添加OnKeyUp事件

来源:互联网 发布:域名备案查询系统 编辑:程序博客网 时间:2024/05/15 15:18

C++Builder6的TrackBar没有OnKeyUp事件,要实现它,添加代码如下

FARPROC OldProc = NULL;LRESULT CALLBACK NewProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){    TRect Rect;    TTrackBar *pTrackBar;    if (uMsg == WM_LBUTTONUP) {        pTrackBar = dynamic_cast<TTrackBar *>(FindControl(hWnd));        if (pTrackBar != NULL) {            SendMessage(hWnd, TBM_GETCHANNELRECT, 0, (long)&Rect);            pTrackBar->Position = 1.0 * (pTrackBar->Max - pTrackBar->Min)                *(LOWORD(lParam) - Rect.left) / Rect.Width() + 0.5;            {//OnKeyUp时你要做的事情            }        }    }    return CallWindowProc(OldProc, hWnd, uMsg, wParam, lParam);}//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)    : TForm(Owner){    OldProc = (FARPROC)SetWindowLong(TrackBar1->Handle, GWL_WNDPROC, (long)NewProc);}

参考:CSDN bbs

0 0
原创粉丝点击