+ hWndFontDlg = WinFontDlg( HWND_DESKTOP
+ ,GetParent()->GetHWND()
+ ,&vFontDlg
+ );
+ if (hWndFontDlg && vFontDlg.lReturn == DID_OK)
+ {
+ wxColour vColour((unsigned long)0x00000000);
+ wxNativeFontInfo vInfo;
+
+ m_fontData.m_fontColour = vColour;
+
+ memset(&vFn, '\0', sizeof(FACENAMEDESC));
+ vFn.usSize = sizeof(FACENAMEDESC);
+ vFn.usWeightClass = vFontDlg.usWeight;
+ vFn.usWidthClass = vFontDlg.usWidth;
+
+ memset(&vInfo.fa, '\0', sizeof(FATTRS));
+ memcpy(&vInfo.fn, &vFn, sizeof(FACENAMEDESC));
+
+ vInfo.fa.usRecordLength = vFontDlg.fAttrs.usRecordLength;
+ strcpy(vInfo.fa.szFacename, vFontDlg.fAttrs.szFacename);
+ vInfo.fa.lMatch = vFontDlg.fAttrs.lMatch;
+
+ //
+ // Debugging
+ //
+ wxFont vChosenFont(vInfo);
+
+ int nPointSize = vFontDlg.fxPointSize >> 16;
+
+ vChosenFont.SetPointSize(nPointSize);
+ m_fontData.m_chosenFont = vChosenFont;
+
+ m_fontData.EncodingInfo().facename = (wxChar*)vFontDlg.fAttrs.szFacename;
+ m_fontData.EncodingInfo().charset = vFontDlg.fAttrs.usCodePage;
+
+ return wxID_OK;
+ }
+ return wxID_CANCEL;
+} // end of wxFontDialg::ShowModal