<p>I am developing a .NET CF based Graphics Application, my project involves a lot of drawing images, We have decided to go for porting the application on different handset resolution.(240 X 240 , 480 X 640) etc. </p>

<p>How would i go onto achieve this within single solution/project?</p>

<p>Is there a need to create different projects based on resolutions?
How would i handle common files? and i need the changes in one of the common classes to occur across all devices.</p>

<p>Thank you,
Cronos</p>

This code has worked for me in determining the resolution of the screen dynamically:
```
```
[DllImport("coredll.dll", EntryPoint = ("GetSystemMetrics"))]
public static extern int GetSystemMetrics(int nIndex);

private const int SM_CXSCREEN = 0;
private const int SM_CYSCREEN = 1;

private int width = GetSystemMetrics(SM_CXSCREEN);
private int height = GetSystemMetrics(SM_CYSCREEN);
```
```
I don't remember it out of the top of my head, but there is also a way to get the Screen Orientation. These would help merge some code in a single Class.
I would strongly recommend to create a single solution for all resolutions. You could have as many projects as you want under these solution. These projects could be Windows Forms Applications, Dll Library projects or Set Up Projects.
I would aim to create a single Windows Forms Application Project. I would use the above technique and read the static images from the File System. If this doesn't work for you and/or you prefer to read your images as resources, then create an 'engine' dll project, containing all the code that is common to all resolutions. Add then the output of this project as reference to as many Windows Forms Applications projects as you need.