I searched in the Internet how to convert / calculate the Control-Positions ( from PIXEL and REVERSE ).
The Infos I found. Maybe we can use it ???
MapDialogRect Function
Converts the specified dialog box units to screen units (pixels).
The function replaces the coordinates in the specified RECT structure with the converted coordinates,
which allows the structure to be used to create a dialog box or position a control within a dialog box.
Syntax
CopyBOOL WINAPI MapDialogRect(
__in HWND hDlg,
__inout LPRECT lpRect
);
// ----- FWH - Function -----------------
DLL32 FUNCTION MapDialRec;
( hDlg AS LONG, @lpRect AS LPSTR ) ; // RECT
AS LONG PASCAL;
FROM "MapDialogRect" LIB "USER32"// -----------------------
Parameters
hDlg [in]
HWND
A handle to a dialog box.
This function accepts only handles returned by one of the dialog box creation functions.
Handles for other windows are not valid.
lpRect [in, out]
LPRECT
A pointer to a RECT structure that contains the dialog box coordinates to be converted.
Return Value
BOOL
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information,
call GetLastError.
Remarks
The MapDialogRect function assumes that the initial coordinates
in the RECT structure represent dialog box units.
To convert these coordinates from dialog box units to pixels,
the function retrieves the current horizontal and vertical base units for the dialog box,
then applies the following formulas:
Copy
left = MulDiv(left, baseunitX, 4.0)
right = MulDiv(right, baseunitX, 4.0)
top = MulDiv(top, baseunitY, 8.0)
bottom = MulDiv(bottom, baseunitY, 8.0)
If the dialog box template has the DS_SETFONT or DS_SHELLFONT style,
the base units are the average width and height, in pixels,
of the characters in the font specified by the template.
Given Pixel-Values to Base-Units
-----------------------------------
Each horizontal base unit is equal to 4 horizontal dialog template units
each vertical base unit is equal to 8 vertical dialog template units
If MapDialogRect(1000) => 1200, then you could simply
take your pixel values, multiply by 1000, divide by 1200, and you would have what you
need. That's just algebra.
For example, suppose your value is 1200 pixels. Then 1000*1200 = 1200000; divide that by
1200 and you get 1000, which is the DBU value you would have started with. So if you got
a 2400 pixel element, it would represent 2000 DBU, which is the value you would store.
Best Regards
Uwe