Festlegen von Standard-Größe in Pixel-dialog im MFC

Ich soll zum festlegen der Standard-Größe in Pixel-dialog, sagen, es ist 640 pixel Breite und 384 pixel Höhe. was ich meine, durch die default ist, dass, wenn das erste mal die CXXXDlg::OnSize(UINT nType, int cx, int cy) aufgerufen wird, wird der Wert von cx 640 und der Wert der cy ist 384. Szene die Standard-Größe der dialog in dialog-Einheiten, und ich kann die MapDialogRect() zu konvertieren das Dialogfeld Einheiten der Pixel, Wie kann ich das umkehren? die MoveWindow() und die SetWindowPos() festlegen können eh die Größe der dialog aber nicht die Standard Größe. Ich habe auch versucht die GetDialogBaseUnits() wie diese:

DWORD dw = GetDialogBaseUnits();
WORD m_duXx4 = LOWORD(dw);
WORD m_duYx8 = HIWORD(dw);
int dialogUnitX = MulDiv(640, 4, m_duXx4);
int dialogUnitY = MulDiv(384, 8, m_duYx8);

es stellte sich heraus, dass die dialogUnitX ist 320 und die dialogUnitY ist 192, aber wenn ich die dialog-Einheit zu 320 * 192, was ich bekam, in CXXXDlg::OnSize(UINT nType, int cx, int cy) ist nicht 640 * 384 aber 560 * 336. Irgendwelche Ideen?

InformationsquelleAutor toolchainX | 2012-10-04
Schreibe einen Kommentar