choosefont (comdlg32)
Last changed: Scover-83.205.43.242

.
Summary
TODO - a short description

C# Signature:

[DllImport("comdlg32.dll", CharSet = CharSet.Auto, EntryPoint = "ChooseFont", SetLastError=true)]
public extern static bool ChooseFont(IntPtr lpcf);

VB Signature:

Declare Function ChooseFont Lib "comdlg32.dll" (TODO) As TODO

User-Defined Types:

LOGFONT

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct CHOOSEFONT
{
     public int lStructSize;
     public IntPtr hwndOwner;
     public IntPtr hDC;
     public IntPtr lpLogFont;
     public int iPointSize;
     public int Flags;
     public int rgbColors;
     public IntPtr lCustData;
     public IntPtr lpfnHook;
     public string lpTemplateName;
     public IntPtr hInstance;
     public string lpszStyle;
     public short nFontType;
     private short __MISSING_ALIGNMENT__;
     public int nSizeMin;
     public int nSizeMax;
}

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

LOGFONT logfont = new LOGFONT();

logfont.lfFaceName = "Segoe UI";

IntPtr pLogfont = Marshal.AllocHGlobal(Marshal.SizeOf(logfont));
Marshal.StructureToPtr(logfont, pLogfont, false);

CHOOSEFONT choosefont = new CHOOSEFONT();
choosefont.lStructSize = Marshal.SizeOf(choosefont);
choosefont.nSizeMin = 64;
choosefont.nSizeMax = 64;
choosefont.Flags = (int)CHOOSEFONTFLAGS.CF_SCREENFONTS
     | (int)CHOOSEFONTFLAGS.CF_FORCEFONTEXIST
     | (int)CHOOSEFONTFLAGS.CF_INACTIVEFONTS
     | (int)CHOOSEFONTFLAGS.CF_INITTOLOGFONTSTRUCT
     | (int)CHOOSEFONTFLAGS.CF_SCALABLEONLY
     | (int)CHOOSEFONTFLAGS.CF_USESTYLE;
choosefont.lpLogFont = pLogfont;

IntPtr pChoosefont = Marshal.AllocHGlobal(Marshal.SizeOf(choosefont));
Marshal.StructureToPtr(choosefont, pChoosefont, false);

bool result = ChooseFont(pChoosefont);

Marshal.FreeHGlobal(pChoosefont);
Marshal.FreeHGlobal(pLogfont);

Documentation
ChooseFont on MSDN