|
From: Marc H. <ma...@e-...> - 2002-10-02 08:02:38
|
Hi, I just had a look at msdn.microsoft.com and this is the example they provide: HWND hwnd; // owner window HDC hdc; // display device context of owner window CHOOSEFONT cf; // common dialog box structure static LOGFONT lf; // logical font structure static DWORD rgbCurrent; // current text color HFONT hfont, hfontPrev; DWORD rgbPrev; // Initialize CHOOSEFONT ZeroMemory(&cf, sizeof(cf)); cf.lStructSize = sizeof (cf); cf.hwndOwner = hwnd; cf.lpLogFont = &lf; cf.rgbColors = rgbCurrent; cf.Flags = CF_SCREENFONTS | CF_EFFECTS; if (ChooseFont(&cf)==TRUE) { hfont = CreateFontIndirect(cf.lpLogFont); hfontPrev = SelectObject(hdc, hfont); rgbCurrent= cf.rgbColors; rgbPrev = SetTextColor(hdc, rgbCurrent); . . . } The only differences I can see is that: 1. They specify CF_SCREENFONTS, but you said you tried that 2. They ZeroMemory the CHOOSEFONT struct before use. Common dialog examples can be found at: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI /WindowsUserInterface/UserInput/CommonDialogBoxLibrary/UsingCommonDialogBoxe s.asp <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinU I/WindowsUserInterface/UserInput/CommonDialogBoxLibrary/UsingCommonDialogBox es.asp> Also the full set of flags can be found at: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui /windowsuserinterface/userinput/commondialogboxlibrary/commondialogboxrefere nce/commondialogboxstructures/choosefont.asp <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winu i/windowsuserinterface/userinput/commondialogboxlibrary/commondialogboxrefer ence/commondialogboxstructures/choosefont.asp> _____________________________ Marc Heiligers -----Original Message----- From: Vlada Djurovic [mailto:dj...@im...] Sent: 02 October 2002 09:39 AM To: 'Marc Heiligers'; 'DevC++ help' Subject: RE: [Dev-C++] fonts Hi, Marc Thanks for your help, but it still doesn't work. I still get the same message. Can it be that I need to include some header files? I included windows.h and commdlg.h. Or maybe there is a problem with my Windows 200? Regards, Vlada -----Original Message----- From: dev...@li... [mailto:dev...@li...] On Behalf Of Marc Heiligers Sent: utorak, 1. oktobar 2002 15:27 To: 'Vlada Djurovic'; DevC++ help Subject: RE: [Dev-C++] fonts Hi, I had a similar problem using the common font dialog in VB. As far as I can remember you have to specify a type of font to list using one of the flags otherwise Windows doesn't know which fonts to enumerate. CF_WYSIWYG, CF_PRINTERFONTS or CF_TTONLY _____________________________ Marc Heiligers -----Original Message----- From: Vlada Djurovic [mailto:dj...@im...] Sent: 01 October 2002 12:57 PM To: DevC++ help Subject: [Dev-C++] fonts Hi. I have a strange problem: I want to use ChooseFont API function to display font selection dialog. I wrote a procedure, compiled, but when I start the application and press choose font from the menu, I get the message: "There are no fonts instaled. Open Fonts folder in Control Panel to install fonts.". Of course, fonts are installed. I have Windows 2000 and DevCpp 4.9.5.0. Can anyone tell me what could cause this? Here is the code I wrote to display font dialog: case WM_COMMAND: switch(LOWORD(wParam)) { case ID_FORMAT_FONT: { CHOOSEFONT chFont; chFont.lStructSize=sizeof(CHOOSEFONT); chFont.hwndOwner=hwnd; chFont.lpLogFont=&lFont; chFont.iPointSize=1; chFont.Flags=CF_INITTOLOGFONTSTRUCT|CF_EFFECTS; chFont.rgbColors=RGB(0,0,0); chFont.nFontType=REGULAR_FONTTYPE; if(!ChooseFont(&chFont)) MessageBox(hwnd,"Error in font dialog","Error",MB_OK|MB_ICONSTOP); } break; } |