Skocz do zawartości

Sabertooth

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Sabertooth's Achievements

Newbie

Newbie (1/14)

0

Reputacja

  1. Sabertooth

    Dialog Units

    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...