| auteur : Geronimo | Avec C++Builder, vous avez à votre disposition l'objet Screen qui dispose d'un certain nombre de méthodes et propriétés concernant, comme son nom l'indique, l'écran. Pour obtenir la résolution, il suffit de récupérer la largeur et la hauteur de l'écran en pixels :
int width = Screen- > Width;
int height = Screen- > Height;
ShowMessage (" La résolution de l'écran est : " + IntToStr (width) + " * " + IntToStr (height));
|
|
lien : Comment changer la résolution de l'écran ?
lien : Comment revenir à la résolution par défaut de l'écran ?
|
| auteurs : Atlantis, Ricky81, Bandit Boy | Voici une fonction qui fait cela très bien :
bool __fastcall ChangeResolution (int Width, int Height)
{
TDeviceMode * Dev = new TDeviceMode;
EnumDisplaySettings (0 ,ENUM_CURRENT_SETTINGS, Dev);
Dev- > dmPelsWidth = Width;
Dev- > dmPelsHeight = Height;
Dev- > dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
bool result = (ChangeDisplaySettingsA (Dev, CDS_RESET) = = DISP_CHANGE_SUCCESSFUL);
delete Dev;
return result;
}
|
Attention, cette fonction ne teste pas si votre écran supporte la résolution que vous souhaitez. Prévoyez au cas où dans votre développement de pouvoir revenir à la résolution précédente.
|
lien : Comment obtenir la résolution de l'écran ?
lien : Comment revenir à la résolution par défaut de l'écran ?
|
| auteurs : Gysmo, Ricky81 | Dans certains cas, il est pratique qu'au lancement du programme celui-ci désactive l'écran de veille ainsi que la mise en veille du moniteur. Pour cela, nous allons utiliser l'API SystemParametersInfo :
SystemParametersInfo (unsigned int uiAction,
unsigned int uiParam,
void * pvParam,
unsigned int fWinIni)
|
Voici un exemple d'utilisation pour suspendre l'écran de veille et la mise en veille du moniteur durant l'exécution d'un programme (void * Param; est un membre privé de la fiche) :
void __fastcall TForm1:: FormCreate (TObject * Sender)
{
if (! SystemParametersInfo (SPI_GETSCREENSAVEACTIVE, 0 , NULL , SPIF_UPDATEINIFILE))
{
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0 , NULL , SPIF_UPDATEINIFILE);
}
SystemParametersInfo (SPI_GETPOWEROFFTIMEOUT, 0 , & Param, SPIF_UPDATEINIFILE);
ShowMessage (IntToStr (Param));
if (Param > 0 )
{
SystemParametersInfo (SPI_SETPOWEROFFTIMEOUT, 0 , NULL , SPIF_UPDATEINIFILE);
}
}
void __fastcall TForm1:: FormClose (TObject * Sender, TCloseAction & Action)
{
if (! SystemParametersInfo (SPI_GETSCREENSAVEACTIVE, 1 , NULL , SPIF_UPDATEINIFILE))
{
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 1 , NULL , SPIF_UPDATEINIFILE);
}
if (Param > 0 )
{
SystemParametersInfo (SPI_SETPOWEROFFTIMEOUT, (int ) Param, NULL , SPIF_UPDATEINIFILE);
}
}
|
|
lien : Comment lancer l'écran de veille défini par défaut ?
lien : Comment mettre en veille le moniteur ?
|
| auteurs : Pierre Castelain, Ricky81 | Récupérer les informations concernant les polices utilisées dans une application C++ Builder est évident : Il suffit de consulter les attributs des propriétés de type TFont. Par contre, nous n'avons pas accès à toutes les polices. Par exemple la police utilisée pour la barre de titre n'est pas disponible directement. Il nous faut donc utiliser une fonction de l'API Windows : SystemParametersInfo
Voici un exemple d'utilisation de cette fonction. Le code suivant récupère juste le nom de la police de la barre de titre, mais vous pouvez le modifier facilement en utilisant les variables de metrics.lfCaptionFont
AnsiString GetTitleBarFontName ()
{
NONCLIENTMETRICS metrics;
metrics.cbSize = sizeof (metrics);
AnsiString result = " Aucune Font trouvée " ;
if (SystemParametersInfo (SPI_GETNONCLIENTMETRICS, sizeof (metrics), & metrics, 0 ))
{
result = metrics.lfCaptionFont.lfFaceName;
}
return result;
}
|
|
lien : Comment détecter la taille de la police d'affichage de Windows ?
|
| auteurs : Pierre Castelain, Ricky81 | Si vous désirez réaliser une interface graphique qui soit utilisable sur tous les systèmes de vos utilisateurs, vous allez peut-être vouloir connaître la taille de la police d'affichage afin d'adapter votre interface en fonction. Ce paramètre, qui peut être modifié par le panneau de configuration de l'affichage, a un impact non négligeable sur l'aspect des fenêtres réalisées avec C++ Builder. En effet, les fenêtres héritant de TForm utilisent cette taille comme taille par défaut de leur propre police. Pour obtenir cette information, un simple appel à la fonction GetDeviceCaps suffit. La fonction d'exemple suivante vous retourne directement la taille de la police. Les valeurs principales sont :
- 96 pour une petite police
- 120 pour une grande police
- et n'importe quelle autre valeur si l'utilisateur l'a spécifiée (relativement rare)
int GetSystemFontSize ()
{
HDC dc = GetDC (0 );
int result = GetDeviceCaps (dc, LOGPIXELSX);
ReleaseDC (0 , dc);
return result;
}
|
|
lien : Comment obtenir des informations sur les polices du système ?
|
Consultez les autres F.A.Q.
|
|