Hide multiple monitor selection controls in this case.
Otherwise, show them when multiple monitors are detected
and hide the monitor preview bitmap.
This fixes the focus on the resolution slider when tested in Windows XP.
Also use the monitor bitmap globally, because it's used on multiple pages.
CORE-17939 CORE-10606
PLACEMENT_VALUE_FILL = 10
} PLACEMENT_VALUE;
-/* The values in these macros are dependent on the
- * layout of the monitor image and they must be adjusted
- * if that image will be changed.
- */
-#define MONITOR_LEFT 20
-#define MONITOR_TOP 8
-#define MONITOR_RIGHT 140
-#define MONITOR_BOTTOM 92
-
-#define MONITOR_WIDTH (MONITOR_RIGHT-MONITOR_LEFT)
-#define MONITOR_HEIGHT (MONITOR_BOTTOM-MONITOR_TOP)
-
typedef struct
{
BOOL bWallpaper; /* Is this background a wallpaper */
int listViewItemCount;
- HBITMAP hBitmap;
- int cxSource;
- int cySource;
-
ULONG_PTR gdipToken;
} BACKGROUND_DATA, *PBACKGROUND_DATA;
HKEY regKey;
TCHAR szBuffer[3];
DWORD bufferSize = sizeof(szBuffer);
- BITMAP bitmap;
AddListViewItems(hwndDlg, pData);
SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_SETCURSEL, PLACEMENT_CENTER, 0);
pData->placementSelection = PLACEMENT_CENTER;
- pData->hBitmap = (HBITMAP) LoadImage(hApplet, MAKEINTRESOURCE(IDC_MONITOR), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
- if (pData->hBitmap != NULL)
- {
- GetObject(pData->hBitmap, sizeof(BITMAP), &bitmap);
-
- pData->cxSource = bitmap.bmWidth;
- pData->cySource = bitmap.bmHeight;
- }
-
/* Load the default settings from the registry */
if (RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop"), 0, KEY_QUERY_VALUE, ®Key) != ERROR_SUCCESS)
{
};
hDC = CreateCompatibleDC(draw->hDC);
- hOldObj = SelectObject(hDC, pData->hBitmap);
+ hOldObj = SelectObject(hDC, g_GlobalData.hMonitorBitmap);
if (pData->backgroundItems[pData->backgroundSelection].bWallpaper == FALSE)
{
GdiTransparentBlt(draw->hDC,
draw->rcItem.left, draw->rcItem.top,
- draw->rcItem.right-draw->rcItem.left+1,
- draw->rcItem.bottom-draw->rcItem.top+1,
+ draw->rcItem.right - draw->rcItem.left + 1,
+ draw->rcItem.bottom - draw->rcItem.top + 1,
hDC,
0, 0,
- pData->cxSource, pData->cySource,
- 0xFF00FF);
+ g_GlobalData.bmMonWidth, g_GlobalData.bmMonHeight,
+ MONITOR_ALPHA);
SelectObject(hDC, hOldObj);
DeleteDC(hDC);
if (pData->pWallpaperBitmap != NULL)
DibFreeImage(pData->pWallpaperBitmap);
- DeleteObject(pData->hBitmap);
GdiplusShutdown(pData->gdipToken);
HeapFree(GetProcessHeap(), 0, pData);
break;
LPCWSTR pwszFile = NULL;
LPCWSTR pwszAction = NULL;
INT nPage = 0;
+ BITMAP bitmap;
UNREFERENCED_PARAMETER(wParam);
g_GlobalData.pwszAction = pwszAction;
g_GlobalData.desktop_color = GetSysColor(COLOR_DESKTOP);
+ /* Initialize the monitor preview bitmap, used on multiple pages */
+ g_GlobalData.hMonitorBitmap = LoadBitmapW(hApplet, MAKEINTRESOURCEW(IDC_MONITOR));
+ if (g_GlobalData.hMonitorBitmap != NULL)
+ {
+ GetObjectW(g_GlobalData.hMonitorBitmap, sizeof(bitmap), &bitmap);
+
+ g_GlobalData.bmMonWidth = bitmap.bmWidth;
+ g_GlobalData.bmMonHeight = bitmap.bmHeight;
+ }
+
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
psh.dwFlags = PSH_USECALLBACK | PSH_PROPTITLE | PSH_USEICONID;
PropertySheet(&psh);
cleanup:
+ DeleteObject(g_GlobalData.hMonitorBitmap);
+
if (hpsxa != NULL)
SHDestroyPropSheetExtArray(hpsxa);
ULONG __cdecl DbgPrint(PCCH Format,...);
+/*
+ * The values in these macros are dependent on the
+ * layout of the monitor image and they must be adjusted
+ * if that image is changed.
+ */
+#define MONITOR_LEFT 20
+#define MONITOR_TOP 8
+#define MONITOR_RIGHT 140
+#define MONITOR_BOTTOM 92
+
+#define MONITOR_WIDTH (MONITOR_RIGHT-MONITOR_LEFT)
+#define MONITOR_HEIGHT (MONITOR_BOTTOM-MONITOR_TOP)
+
+#define MONITOR_ALPHA 0xFF00FF
+
#define MAX_DESK_PAGES 32
#define NUM_SPECTRUM_BITMAPS 3
COLORREF desktop_color;
LPCWSTR pwszFile;
LPCWSTR pwszAction;
+ HBITMAP hMonitorBitmap;
+ LONG bmMonWidth;
+ LONG bmMonHeight;
} GLOBAL_DATA, *PGLOBAL_DATA;
extern GLOBAL_DATA g_GlobalData;
CAPTION "Настройки"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Завлачете значетата на мониторите така, че да отговарят на действителното разположение на мониторите ви.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Завлачете значетата на мониторите така, че да отговарят на действителното разположение на мониторите ви.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Екран:", 1820, 3, 107, 70, 9
CAPTION "Nastavení"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Tažením nastavte ikony monitorů, aby odpovídaly fyzickému uspořádání vašich monitorů.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Tažením nastavte ikony monitorů, aby odpovídaly fyzickému uspořádání vašich monitorů.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Obrazovka:", 1820, 3, 107, 70, 9
CAPTION "Einstellungen"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Verschieben Sie die Monitor-Symbole, sodass sie der physischen Anordnung Ihrer Monitore entsprechen.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Verschieben Sie die Monitor-Symbole, sodass sie der physischen Anordnung Ihrer Monitore entsprechen.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Anzeige:", 1820, 3, 107, 70, 9
CAPTION "Ρυθμίσεις"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Σύρετε τα εικονίδια της οθόνης, ώστε να ταιριάξουν με τη φυσική διάταξη των οθονών σας.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Σύρετε τα εικονίδια της οθόνης, ώστε να ταιριάξουν με τη φυσική διάταξη των οθονών σας.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Εμφάνιση:", 1820, 3, 107, 70, 9
CAPTION "Settings"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Drag the monitor icons to match the physical arrangement of your monitors.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Drag the monitor icons to match the physical arrangement of your monitors.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Display:", 1820, 3, 107, 70, 9
CAPTION "Settings"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Drag the monitor icons to match the physical arrangement of your monitors.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Drag the monitor icons to match the physical arrangement of your monitors.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Display:", 1820, 3, 107, 70, 9
CAPTION "Configuración"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Arrastre los iconos para ajustar el orden físico de sus monitores.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Arrastre los iconos para ajustar el orden físico de sus monitores.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "Mostrar:", 1820, 3, 107, 70, 9
CAPTION "Sätted"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Lohista monitori ikoone kuni see kattub teie füüsilise monitoride järjekorraga.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Lohista monitori ikoone kuni see kattub teie füüsilise monitoride järjekorraga.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Kuva:", 1820, 3, 107, 70, 9
CAPTION "Paramètres"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Déplacez les icônes de moniteur pour qu'elles correspondent à l'arrangement physique de vos moniteurs.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Déplacez les icônes de moniteur pour qu'elles correspondent à l'arrangement physique de vos moniteurs.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Affichage :", 1820, 3, 107, 70, 9
CAPTION "הגדרות"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Drag the monitor icons to match the physical arrangement of your monitors.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Drag the monitor icons to match the physical arrangement of your monitors.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "תצוגה:", 1820, 3, 107, 70, 9
CAPTION "Beállítások"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Mozgassa a monitor ikonokat úgy, hogy megegyezzen a monitorjai fizikai elrendezésével.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Mozgassa a monitor ikonokat úgy, hogy megegyezzen a monitorjai fizikai elrendezésével.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Képernyő:", 1820, 3, 107, 70, 9
CAPTION "Setelan"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Geser ikon monitor untuk mencocokkan penyesuaian fisik monitor.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Geser ikon monitor untuk mencocokkan penyesuaian fisik monitor.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Tampilan:", 1820, 3, 107, 70, 9
CAPTION "Impostazioni"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Trascinare le icone dei monitor in modo corrispondente alla disposizione fisica dei vostri monitor.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Trascinare le icone dei monitor in modo corrispondente alla disposizione fisica dei vostri monitor.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Schermo:", 1820, 3, 107, 70, 9
CAPTION "設定"
FONT 9, "MS UI Gothic"
BEGIN
- LTEXT "モニタのアイコンを実際のモニタの配列と一致するように移動してください。", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "モニタのアイコンを実際のモニタの配列と一致するように移動してください。", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "ディスプレイ(&D):", 1820, 3, 107, 70, 9
CAPTION "Instellingen"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Drag the monitor icons to match the physical arrangement of your monitors.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Drag the monitor icons to match the physical arrangement of your monitors.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Scherm:", 1820, 3, 107, 70, 9
CAPTION "Innstillinger"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Dra skjermikonene for å tilpasse fysisk til din skjerm.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Dra skjermikonene for å tilpasse fysisk til din skjerm.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Skjerm:", 1820, 3, 107, 70, 9
CAPTION "Ustawienia"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Przeciągnij ikony monitorów tak, by przedstawiały fizyczne rozmieszczenie twoich monitorów.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Przeciągnij ikony monitorów tak, by przedstawiały fizyczne rozmieszczenie twoich monitorów.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Ekran:", 1820, 3, 107, 70, 9
CAPTION "Configurações"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Arraste os ícones de monitor para que corresponda à disposição física de seus monitores.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Arraste os ícones de monitor para que corresponda à disposição física de seus monitores.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "Vídeo:", 1820, 3, 107, 70, 9
CAPTION "Definições"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Arraste os ícones dos monitores, para que correspondam à disposição física dos seus monitores.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Arraste os ícones dos monitores, para que correspondam à disposição física dos seus monitores.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 250, 82, WS_EX_CLIENTEDGE
LTEXT "Monitor:", 1820, 3, 107, 70, 9
CAPTION "Configurare"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Mișcați miniaturile ecranelor până vor corespunde cu amplasamentul fizic al ecranelor (opțiune pentru ecrane multiple).", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Mișcați miniaturile ecranelor până vor corespunde cu amplasamentul fizic al ecranelor (opțiune pentru ecrane multiple).", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Dispozitive de afișare:", 1820, 3, 107, 75, 9
CAPTION "Параметры"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Разместите значки мониторов в соответствии с их расположением.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Разместите значки мониторов в соответствии с их расположением.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Дисплей:", 1820, 3, 107, 70, 9
CAPTION "Nastavenie"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Ťahaním zoraďte ikony podľa fyzického rozmiestnenia monitorov.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Ťahaním zoraďte ikony podľa fyzického rozmiestnenia monitorov.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Monitor:", 1820, 3, 107, 70, 9
CAPTION "Cilësimet"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Terheq monitorimin e ikonave të përputhet me marrëveshje fizike të vëzhguesit tuaj.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Terheq monitorimin e ikonave të përputhet me marrëveshje fizike të vëzhguesit tuaj.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Ekran:", 1820, 3, 107, 70, 9
CAPTION "Inställningar"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Drag the monitor icons to match the physical arrangement of your monitors.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Drag the monitor icons to match the physical arrangement of your monitors.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Bild:", 1820, 3, 107, 70, 9
CAPTION "Ayarlar"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Monitörlerinizin fiziksel düzenlenmesini karşılaştırmak için monitör simgelerini sürükleyiniz.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Monitörlerinizin fiziksel düzenlenmesini karşılaştırmak için monitör simgelerini sürükleyiniz.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "Görü&ntü:", 1820, 3, 107, 70, 9
CAPTION "Параметри"
FONT 8, "MS Shell Dlg"
BEGIN
- LTEXT "Розташуйте значки моніторів відповідно до фактичного розташування моніторів.", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "Розташуйте значки моніторів відповідно до фактичного розташування моніторів.", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "&Дисплей:", 1820, 3, 107, 70, 9
CAPTION "设置"
FONT 9, "宋体"
BEGIN
- LTEXT "拖动监视器图标以匹配监视器的物理排列。", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "拖动监视器图标以匹配监视器的物理排列。", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "显示(&D):", 1820, 3, 107, 70, 9
CAPTION "設定"
FONT 9, "新細明體"
BEGIN
- LTEXT "拖動顯示器圖示以便符合顯示器的實際設定。", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "拖動顯示器圖示以便符合顯示器的實際設定。", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "顯示(&D):", 1820, 3, 107, 70, 9
CAPTION "設定"
FONT 9, "新細明體"
BEGIN
- LTEXT "拖動顯示器圖示以便符合顯示器的實際設定。", -1, 3, 3, 240, 20
+ CONTROL "", IDC_RESOLUTION_PREVIEW, "Static", SS_OWNERDRAW, 70, 10, 105, 74, 0
+ LTEXT "拖動顯示器圖示以便符合顯示器的實際設定。", IDC_SETTINGS_MONTEXT, 3, 3, 240, 20
CONTROL "", IDC_SETTINGS_MONSEL, "MONITORSELWNDCLASS", WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 3, 23, 240, 82, WS_EX_CLIENTEDGE
LTEXT "顯示(&D):", 1820, 3, 107, 70, 9
#define IDC_COLOR_BUTTON 1004
#define IDC_PLACEMENT_COMBO 1005
#define IDS_BACKGROUND_COMDLG_FILTER 1006
+#define IDC_RESOLUTION_PREVIEW 1007
/* Screensaver Page */
#define IDC_SCREENS_PREVIEW 1010
#define IDC_SETTINGS_ADVANCED 205
#define IDC_SETTINGS_MONSEL 206
#define IDC_SETTINGS_SPECTRUM 207
+#define IDC_SETTINGS_MONTEXT 208
-#define IDB_SPECTRUM_4 208
-#define IDB_SPECTRUM_8 209
-#define IDB_SPECTRUM_16 210
+#define IDB_SPECTRUM_4 209
+#define IDB_SPECTRUM_8 210
+#define IDB_SPECTRUM_16 211
#define IDR_PREVIEW_MENU 2100
#define ID_MENU_NORMAL 2101
/* Single video adapter */
OnDisplayDeviceChanged(hwndDlg, pData, pData->DisplayDeviceList);
+ ShowWindow(GetDlgItem(hwndDlg, IDC_SETTINGS_MONTEXT), SW_HIDE);
+ ShowWindow(GetDlgItem(hwndDlg, IDC_SETTINGS_MONSEL), SW_HIDE);
+
monitors.Position.x = monitors.Position.y = 0;
monitors.Size.cx = pData->CurrentDisplayDevice->CurrentSettings->dmPelsWidth;
monitors.Size.cy = pData->CurrentDisplayDevice->CurrentSettings->dmPelsHeight;
OnDisplayDeviceChanged(hwndDlg, pData, pData->DisplayDeviceList);
+ ShowWindow(GetDlgItem(hwndDlg, IDC_RESOLUTION_PREVIEW), SW_HIDE);
+
pMonitors = (PMONSL_MONINFO)HeapAlloc(GetProcessHeap(), 0, sizeof(MONSL_MONINFO) * Result);
if (pMonitors)
{
}
}
+static VOID
+ShowResolutionPreview(IN LPDRAWITEMSTRUCT draw, IN PSETTINGS_DATA pData)
+{
+ HBRUSH hBrush;
+ HDC hDC;
+ HGDIOBJ hOldObj;
+ RECT rcItem = {
+ MONITOR_LEFT,
+ MONITOR_TOP,
+ MONITOR_RIGHT,
+ MONITOR_BOTTOM
+ };
+
+ hDC = CreateCompatibleDC(draw->hDC);
+ hOldObj = SelectObject(hDC, g_GlobalData.hMonitorBitmap);
+
+ /* FIXME: Draw resolution preview bitmap inside monitor. */
+ hBrush = CreateSolidBrush(g_GlobalData.desktop_color);
+ FillRect(hDC, &rcItem, hBrush);
+ DeleteObject(hBrush);
+
+ GdiTransparentBlt(draw->hDC,
+ draw->rcItem.left, draw->rcItem.top,
+ draw->rcItem.right - draw->rcItem.left + 1,
+ draw->rcItem.bottom - draw->rcItem.top + 1,
+ hDC,
+ 0, 0,
+ g_GlobalData.bmMonWidth, g_GlobalData.bmMonHeight,
+ MONITOR_ALPHA);
+
+ SelectObject(hDC, hOldObj);
+ DeleteDC(hDC);
+}
+
/* Get the ID for SETTINGS_DATA::hSpectrumBitmaps */
static VOID
ShowColorSpectrum(IN HDC hDC, IN LPRECT client, IN DWORD BitsPerPel, IN PSETTINGS_DATA pData)
}
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
+ InvalidateRect(GetDlgItem(hwndDlg, IDC_RESOLUTION_PREVIEW), NULL, TRUE);
dmBitsPerPel = Current->dmBitsPerPel;
dmDisplayFrequency = Current->dmDisplayFrequency;
LPDRAWITEMSTRUCT lpDrawItem;
lpDrawItem = (LPDRAWITEMSTRUCT) lParam;
- if (lpDrawItem->CtlID == IDC_SETTINGS_SPECTRUM)
- ShowColorSpectrum(lpDrawItem->hDC, &lpDrawItem->rcItem, pData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel, pData);
+ switch (lpDrawItem->CtlID)
+ {
+ case IDC_RESOLUTION_PREVIEW:
+ {
+ ShowResolutionPreview(lpDrawItem, pData);
+ break;
+ }
+ case IDC_SETTINGS_SPECTRUM:
+ {
+ ShowColorSpectrum(lpDrawItem->hDC, &lpDrawItem->rcItem, pData->CurrentDisplayDevice->CurrentSettings->dmBitsPerPel, pData);
+ break;
+ }
+ }
break;
}
case WM_COMMAND: