Форум: "WinAPI";
Текущий архив: 2003.06.30;
Скачать: [xml.tar.bz2];
ВнизScrollbar, или спасите люди добрые Найти похожие ветки
← →
Diamond Cat (2003-03-09 03:56) [0]Никак не могу прокрутить скрол бар, вернее установить позицию бегунка легко но никак не могу обработать нажатие на него, не приходят сообщения типа sbm_... не пойму что не так вот кусок кода
procedure button(hwnd:Thandle);
var
si:tagSCROLLINFO;
begin
buttonup:=CreateWindow("SCROLLBAR","",
SBS_HORZ or ws_visible or ws_child,
60,40,90,7,hwnd,0,hinstance,nil);
si.cbSize:=sizeof(tagSCROLLINFO);
si.fMask:=SIF_ALL;
si.nPage:=1;
si.nMin:=0;
si.nMax:=50;
si.nPos:=25;
si.nTrackPos:=10;
// SetScrollInfo(buttonup,SB_CTL,si,true);
sendmessage(buttonup,sbm_setscrollinfo,1,integer(@si));
таким манером можно установить позицию, но через WinProc это сообщение не проходит т.е. оно вроде и недолжно проходить т.к. отправлено самому скролу. к тому же при нажатии на скрол его позиция не меняется
Короче какое сообщение должна получать моя оконная процедура?
end;
procedure WinMain;
var
hWnd: THandle;
Msg: TMsg;
WndClassEx: TWndClassEx;
begin
WndClassEx.cbSize := sizeOf (TWndClassEx);
WndClassEx.lpszClassName := "Asmenu";
WndClassEx.style := cs_VRedraw or cs_HRedraw or CS_PARENTDC;
WndClassEx.hInstance := HInstance;
WndClassEx.lpfnWndProc := @WinProc;
WndClassEx.cbClsExtra := 0;
WndClassEx.cbWndExtra := 0;
WndClassEx.hIcon := LoadIcon (hInstance, MakeIntResource ("MAINICON"));
WndClassEx.hIconSm := 0;
WndClassEx.hCursor := LoadCursor (0, IDC_ARROW);
WndClassEx.hbrBackground := HBRUSH(CreatePatternBrush(LoadBitmap(HInstance,"bitmap1")));
WndClassEx.lpszMenuName :="Auto_scroll";
if RegisterClassEx (WndClassEx) = 0 then begin
MessageBox (0," ","Asmenu", mb_ok + MB_ICONERROR);
halt;
end
else
begin
hWnd := CreateWindowEx ( WS_EX_TOOLWINDOW,WndClassEx.lpszClassName,"Asmenu",WS_POPUP,0,0, 200,110, 0, 0, HInstance, nil);
setwindowpos(hwnd,HWND_TOPMOST,strtoint(paramstr(1)),strtoint(paramstr(2)),159,130,swp_showwindow);
button(hwnd);
while GetMessage (Msg, 0, 0, 0) do
begin
TranslateMessage (Msg);
DispatchMessage (Msg);
end;
end;
end;
← →
}{enon (2003-03-09 20:59) [1]Тут МА-А-АЛЕНЬКАЯ проблема: если бегунок - это окно, то скроллбар может вообще за него не отвечать, а если рисунок - то ты вряд-ли что-то поймаешь.
← →
Diamond Cat (2003-03-09 23:53) [2]да причем тут рисунок или окно, вопрос в том что моя оконная процедура не получает никаких сообщений от скрола, или получает но я не знаю какие, но все sbm_... сообщения через оконную функцию обработки сообщений не проходят, сообщения wm_hscroll & wm_vscroll тоже не проходят, единственное сообщение которое удалось получить и идентифицировать это WM_CTLCOLORScrollbar, но оно несет минимум полезной информации может что не так при создании скролбара может какой флаг надо добавить? если у кого есть кусочек кода скинте
← →
Diamond Cat (2003-03-10 01:04) [3]Простите, все нормально заработало, просто не правильная обработка wm_hscroll была отсюда все беды
Всем Спасибо, все свободны :)
← →
UserMicc (2003-04-28 17:15) [4]Ups
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.06.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c