Slider i MSVC 6.0

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
JJ
Inlägg: 366
Blev medlem: 16 maj 2005, 21:33:02

Slider i MSVC 6.0

Inlägg av JJ »

Problemet gäller "Slider"-kontrollen i Visual C++ 6.0, språk: C

Någon som är mer hemma på Windows-programmering än vad jag är?

Jag har gjort en dialogruta med resurseditorn. I dialogrutan finns en Slider. Jag kan fånga windowsmeddelanden som jag skall. Problemet är att jag inte kan läsa av Sliderns läge mha GetScrollPos() . Denna funktion returnerar alltid noll.

Jag har försökt med andra värden än SB_CTL på flaggan, med att använda funktionen GetScrollInfo() istället. GetLastError() returnerar 0 (=OK):

Dialogens procedur (editerad):

Kod: Markera allt

BOOL CALLBACK DlgProc(HWND hwnd, UINT iMsg, 
                      WPARAM wParam, LPARAM lParam)
{
       switch (iMsg)
       {
       case WM_HSCROLL:
          switch(LOWORD(wParam))
          {
          case SB_PAGERIGHT:
          case SB_PAGELEFT:
             nPos = GetScrollPos((HWND) lParam, SB_CTL); // <- Funkar ej
             break;
          }
       }
}
Användarvisningsbild
Icecap
Inlägg: 26612
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Med 'Slider' menar du då en potentiometerliknande slider eller scroll-delen av en textruta?

Jag använder BCB6 och om man då har en TrackBar (antar att det är motsvarigheten) är det "Position" som gäller.

Jag får en känsla av att du ber om scroll-positionen med ditt anrop, för mig är 'Scroll' just detta att rulla ner sidan vid mycket text t.ex.
JJ
Inlägg: 366
Blev medlem: 16 maj 2005, 21:33:02

Inlägg av JJ »

Just det, jag menar en skjut-pot. Den heter "Slider" hos mig. Ja, ordet "scroll" är väl det du skriver...men om jag fattat saken rätt så behandlas "Slider" som en scrollbar.
Användarvisningsbild
Icecap
Inlägg: 26612
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Jag ids inte installera M$VC på min dator men kan du inte läsa ut vilka properties kontrollen har?

De flesta visuella verktyg har mycket logiska namn på de olika delarna vilket är grejen som får mig att undra.

Å andra sidan finns det ju ett bra forum (även för dom stackarna som sitter i M$-träsket): Kolla här vetja, det kan vara värd att regga sig där kanske?

Men jag undrar detta med hjälpen, jag kan markera en komponent och trycka F1 vilket får fram alla properties, exempelkod och allt annat jag vill veta om komponenten...... kan inte du det bör du kanske hitta ett bättre verktyg om du kan byta.
JJ
Inlägg: 366
Blev medlem: 16 maj 2005, 21:33:02

Inlägg av JJ »

MSVC är inget vanligt grafiskt verktyg, properties och sådant finns inte på samma sätt som i VB och Borlandverktygen etc. Och det är ju just därför de verktygen finns...

I mitt fall funkar det inte att byta verktyg tror jag, jag modifierar ett exempel nämligen...men du har rätt, programmera direkt mot windows-APIt skall man inte göra om man kan låta bli!

Jag har hittat en workaround nu iallfall så jag tar mig vidare. Tack för dina svar och för länktips!
Användarvisningsbild
karlstedt
EF Sponsor
Inlägg: 966
Blev medlem: 14 oktober 2003, 16:55:23
Ort: Lund
Kontakt:

Inlägg av karlstedt »

Du måste mappa en variabel till kontrollen.

Markera slidern och Öppna MFC Class Wizard (Ctrl+W). Gå till fliken 'Member variables' -> Add Variable.

Skriv i ett variabelnamn, tex: m_SlideCtrl.
Välj Control i Category-rutan.
klicka ok.

Använd sedan din kontroll med . (punktoperatorn).
typ:

Kod: Markera allt

int n;
m_SlideCtrl.SetRange(0,10)
m_SlideCtrl.GetPos(n);
förutsatt att du menar en nedanstående kontroll:
Bild
JJ
Inlägg: 366
Blev medlem: 16 maj 2005, 21:33:02

Inlägg av JJ »

Jag skriver i C så jag har inte MFC.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1352
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Inlägg av baron3d »

Använd Borland Builder!
Finns nu gratis som Turbo c++
http://www.turboexplorer.com/cpp
Skriv svar