Skocz do zawartości

Sabertooth

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Posty napisane przez Sabertooth

  1. Witam!
    Uzywajac visual studio 6, a dokladnie jego resource editora zrobilem sobie Dialoga w projekcie MFC. Wszystko pieknie dziala. Nistety zostalem zmuszony aby zrezygnowac z dobrodziejstw takowego tworzenia okien na rzecz tworzenia dynamicznego. I tutaj pojawil sie problem. Mam okolo 90 kontrolek, ktore musza zostac zainicjowane podczas startu programu. Ze swtorzeniem nie ma zadnych probemow. Sek w tym, ze pozycja podana w pliku z *.rc jest wyrazona w tak zwanych Dialog Units i wykorzystujac je podczas tworzenia dynamicznego [ potrzebne do tego sa piksele ] wszystko sie sypie. Moje pytanie brzmi w jaki sposob przeliczyc dialog unity na piksele.
    Nie omieszkalem zagooglac. Wyniki Przedstawiam ponizej:

    class MSKDialogUnits
    {
    
    private:
        WORD m_duXx4; // Dialog Units, on the X axis, times 4
        WORD m_duYx8; // Dialog Units, on the Y axis, times 8
    public:
    
        MSKDialogUnits()
        {
            DWORD dw = GetDialogBaseUnits();
            m_duXx4 = LOWORD(dw);
            m_duYx8 = HIWORD(dw);
    
        }
    
        ~MSKDialogUnits() {};
        int X(int x) {return ((x * m_duXx4) /4);}
        int Y(int y) {return ((y * m_duYx8) /8);}
    
    };

    Niestety koordynaty zdaja sie byc niepoprawne, a przynajmniej pomylone o kilkanascie pikseli [ im dalsza pozycja od zera tym wiekszy blad ].

    Moze ktos juz sie spotkal z takim problemem i moze ma rozwiazanie?

×
×
  • Utwórz nowe...