Avatar billede narrr Nybegynder
27. juni 2004 - 18:11 Der er 14 kommentarer og
1 løsning

Problemer med SetScrollPos

Hejsa!

Nogen der kan fortælle mig hvordan SetScrollPos scroller vinduet? Jeg er nemlig ved at lave et program, hvor jeg selv vil stå for scrollingen, og derfor vil jeg gerne modvirke den funktion SetScrollPos kører.. Altså, hvis den fx kalder ScrollWindowEx(-25, ....), så vil jeg kalde ScrollWindowEx(25,...)..

Helt konkret er mit program et tegneprogram ligesom mspaint, og jeg bruger SetViewportOrg til at scrolle.
Avatar billede narrr Nybegynder
27. juni 2004 - 18:12 #1
...eller det kunne også være dejligt hvis der var nogen der kendte en funktion der udelukkende ændrer Scroll-thumbens position.
Avatar billede nico26 Nybegynder
27. juni 2004 - 18:17 #2
hvis brugeren ikke må scrolle, hvorfor fjerner du så ikke scrollbaren?
Avatar billede narrr Nybegynder
27. juni 2004 - 18:21 #3
Åh, hovsa, brugeren må naturligvis gerne scrolle, problemet er bare, at SetScrollPos både scroller mit vindue og ændrer thumbens position. Jeg vil scrolle vinduet med SetViewportOrg, og når SetScrollPos også scroller, så går det helt galt!
Avatar billede bertelbrander Novice
27. juni 2004 - 20:25 #4
Prøv at kikke på denne:
http://home20.inet.tele.dk/midgaard/draw2.zip

For at se det virke skal du loade et .bmp-billede og lave billedet større en vinduet.
Avatar billede narrr Nybegynder
27. juni 2004 - 22:10 #5
Okay, mange tak skal du have for det eksempel. Så vidt jeg kan se bruger du bare SetScrollInfo til at scrolle dit vindue med. Så må mit problem være at jeg kører sådan et doublebuffered system(altså for at undgå at skærmen blinker når man tegner). Hmm, det må jeg lige se lidt på. Bortset fra det, så jeg jeg lige nu lavet en løsning der går ud på at jeg selv tilføjer scrollbars, og så opdaterer dem når det er nødvendigt.. langt fra den bedste løsning.
Avatar billede bertelbrander Novice
27. juni 2004 - 22:59 #6
SetScrollInfo() sætter kun info for scroll baren, og scroller ikke vinduet.

I ShowImage() (i main.c) bruger jeg netop SetViewportOrgEx(...) til at "scrolle" vinduet.
Avatar billede narrr Nybegynder
27. juni 2004 - 23:07 #7
Jeg har testet den tidligere i dag, og nu gjorde jeg det igen.. SetScrollInfo scroller altså mit vindue.
Avatar billede narrr Nybegynder
27. juni 2004 - 23:10 #8
Men hvis man fjerner SetViewportOrgEx i dit program bliver det godt nok ikke scrollet. hmmmmm
Avatar billede narrr Nybegynder
27. juni 2004 - 23:15 #9
Argh, i dit program scroller SetScrollPos heller ikke! Tror du det har noget at gøre med at jeg bruger MFC ?
Avatar billede bertelbrander Novice
27. juni 2004 - 23:19 #10
Ja, MFC er en anden sag.

Er dit vindue et CScrollView eller CView eller "normalt" vindue.
Avatar billede narrr Nybegynder
27. juni 2004 - 23:22 #11
CScrollView
Avatar billede bertelbrander Novice
27. juni 2004 - 23:26 #12
Hvorfor ikke blot lade MFC klare scrolling?

Hvis du selv vil håndtere scrolling tror jeg du er nødt til at bruge et CView og tilføje og håndtere scroll barene selv. Min erfaring siger mig at det stort set er umuligt at få et CScrollView til at opføre sig ordentligt.
Avatar billede narrr Nybegynder
27. juni 2004 - 23:32 #13
Vildt! I samme sekund jeg laver det om til et almindeligt view og smider en scrollbar ind som cs.style |= WS_HSCROLL, så virker det perfekt! Det var da underligt med det CScrollView.
Avatar billede narrr Nybegynder
27. juni 2004 - 23:33 #14
Og min SetScrollInfo scroller ikke vinduet længere! Super :) Jeg siger tusind tak.
Avatar billede narrr Nybegynder
18. oktober 2006 - 15:32 #15
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester