Auf allen Pocket Pc’s mit Windows Mobile 5 und 6 gibt es GDI+ wie schon in einem anderen Post von mir erwähnt. Die Standard Controls im Compact Framework sind ja eher Grau in Grau – Abhilfe kann da nicht schaden.

In letzter Zeit gibt es jetzt auch wieder mehrere Leute die zu  diesem interessanten Themengebiet posten:

Natürlich hat das alles nicht unbedingt einen positiven Effekt auf die Performance – aber coole Applikationen bringen mehr Geld ;)

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg

Ein Kollege hat mich gestern gefragt ob ich einen Ersatzt für GetActiveWindow()  kenne, da dieser Api Call in Windows Mobile 6.1 nicht mehr funktioniert. Die übliche suche in Google brachte eher bescheidene Ergebnisse. Aber immerhin ein Forum das uns auf die richtige Spur gebracht hat. Laut diesem Post ist GetForGroundWindow() die Version die man verwenden soll.

Meine Tests haben ergeben das GetActiveWindow schon auch in Windows Mobile 6.1 funktioniert – aber nur einen Wert liefert wenn die aktuelle Applikation ein aktives Formular hat. In der MSDN steht bei GetActiveWindow: “The return value is the handle to the active window attached to the calling thread’s message queue. Otherwise, the return value is NULL. ”

Folgender Code:

Hide();
Debug.WriteLine(“Form hidden”);
Debug.WriteLine(string.Format(“GetActiveWindow {0}”, GetActiveWindow()));
Debug.WriteLine(string.Format(“GetForegroundWindow {0}”,GetForegroundWindow()));
Show();
Debug.WriteLine(“Form shown”);
Debug.WriteLine(string.Format(“GetActiveWindow {0}”, GetActiveWindow()));
Debug.WriteLine(string.Format(“GetForegroundWindow {0}”, GetForegroundWindow()));

 

liefert also:

Form hidden
GetActiveWindow 0
GetForegroundWindow 2080886352
Form shown
GetActiveWindow 2080896288
GetForegroundWindow 2080896288

 

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg

Gerade bei Neil Cowburn gesehen:

Auf der Seite von OpenNETCF gibts eine neue Version vom Smart Device Framework, jetzt endlich auch für Visual Studio 2008. Die Feature Matrix gibs hier.

Interessant ist auch was Chris Tacke über den Designer/Toolbox Support von Visual Studio 2008 schreibt.

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg

Habe gerade etwas Interessantes auf Jason Mr. Mobile’s Blog gelesen. Es gibt von der Patterns & Practices Group ein Update zum Gratis e-Book.  Download auf Codeproject.

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg

Es gibt ja immerwieder die Diskussion was die Hauptunterschied zwischen CF 2.0 und CF 3.5 sind.

Neuerungen in CF 3.5:

  • Linq
  • WCF Unterstützung

Dann gibt es einen großen Teil von Features die nichts mit dem Compactframework, sondern nur mit dem Compiler zu tun haben und den damit verbundenen Sprachfeatures vonC# 3.0 (var, [], Extension Mehtods, …). Diese können auch mit CF 2.0 verwendet werden wenn man Visual Studio 2008 als Compiler verwendet.

Am spannendsten von allen Änderungen finde ich  das einiges getan wurde um Memory Leaks in CF Applikation zu verhindern:

Der größte Nachteil beim CF 3.5 ist das man es auf den meisten Geräten extra Installieren muss!

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg

Auf dem Blog von Alex Yakhnin gibt es eine Beispiel Implementierung für MVC am Compact Framework.

Der Source ist auch auf CodePlex (Und ja er verwendet Typed DataRows) – ganz mein Freund ;)

CodePlex: http://www.codeplex.com/MobileMVC

Blog Posts: http://blogs.msdn.com/priozersk/archive/tags/MVC/default.aspx

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg

EDIT: see also Silvermoon – englisch post.

Es gibt einen super Post von Alex Feinmann (Opennet.cf) für einen GDI+ Wrapper am CompactFramework.

Unterstützt wird dabei nur Windows Mobile Professional – darum wird vermutlich auch von MS nichts derartiges geliefert.

Leider unterstützt diese Implementierung keine Rechtecke mit abgerundeten Ecken. Dazu habe ich aber etwas auf CodeProject von Arun Reginald gefunden.

Dann habe ich 3 kleine Methoden in die GraphicsPlus Klasse von Alex integriert – und angepasst und schon kann ich abegerundete Rechtecke am Windows Mobile zeichnen.

public GraphicsPath GetRoundedRectanglePath(float x, float y, float width, float height, float radius)
{
     GpRectF rectangle = new GpRectF(x, y, width, height);
     return GetRoundedRect(rectangle, radius);
} 


public
void DrawRoundRectangle(PenPlus pen,float x, float y,float width, float height, float radius)
{
   
GraphicsPath path = GetRoundedRectanglePath(x, y, width, height, radius);
   
DrawPath(pen, path);
}
Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg