Jump to content

Sabertooth

Members
  • Content Count

    0
  • Joined

  • Last visited

    Never

Community Reputation

0 Neutral

About Sabertooth

  • Rank
    Newbie
  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?
×
×
  • Create New...