The proper way to implement non-rectangular windows in .NET WinForms is via
the Control.Region property, not via any hackish, homegrown color-keying
approach.

Color-keyed approaches to transparency are possible, but the results vary
widely with the video hardware/mode (8bpp? 15/16bpp? 24bpp? 32bpp?) and
therefore the techinique is all but useless in the space of end-user apps.

> Since the GUI coder located out of the country, I've emailed screen shots
from
> all of the various machines to her and she still can't put her finger on
the problem.
>
> Between this and trying to resolve issues of threading with C++ backend
code that
> must communicate with the GUI in C# .NET I'm starting to pull my hair out.

Umm... What's wrong with Control.Invoke?

Is this the kind of quality people are accustomed to, with overseas
development outsourcing?  Are you still convinced it's saving you money?  Do
you really believe that this is a "language bug", and that paying your
offshore dev team to port the code from C# to C++ will somehow fix things?
</bitterness>

No.

Here's the thing: software development, even with .NET, is still hard.  Your
team may be 100x more productive with C# than they are with C++, but they
still have to understand the underpinnings of the OS when it comes to
implementing features like non-rectangular window regions and multithreaded
UI programming, or else they will have no success at all.

If you really must do these kinds of things, you should hire an expert
consultant to help put your dev team on the right track.
-S



-----Original Message-----
From: Peter D. Vouvounas [mailto:[EMAIL PROTECTED]
Sent: Tuesday, November 11, 2003 10:03
Subject: Expert guidance or idea's needed

Morning Folks,

I could really use some input from one or more of the experts on the list
regarding the following conditions:

First we have a GUI under development and the coders are using C# and .NET
framework.

I supplied all of the graphics which consists of a couple of hundred gif
files.  The individual gif files are cutouts from the main GUI body plus
mouse up, mouse over (Hover) and mouse down graphics for the various
controls.

Now this is where the initial problems start:!!!!

The GUI is not a square window - it has many rounded borders or contours.
Our graphic artist mentioned using a blue background in the programming
process so that the square edges can be keyed out.

The current result is as follows - We have at least five different people
(machines) that attempt to run the C# .NET GUI as the development continues.

1. Windows ME
2. Windows 98SE
3. Three machines with XP Pro

Each person (geographical different) has downloaded .NET ver 1.1 from
Microsoft and installed on their machine.

When the GUI is executed on ME and 98SE it always has a ragged border of
blue around the GUI - Not just a square outline but blotches of blue - They
never ever have seen the GUI come up without the blue and the performance is
extremely sluggish in response to various button presses. For example the
GUI has three roll-out panels.  In the mode just described the panels roll
out very slow and a bit jerky - Same when moving the GUI around the screen
it's a bit jerky.

Now the alternate to the description takes place in my computer environment.
Randomly when I start the GUI on my XP Pro machine it looks perfect! Very
smooth as it is moved around the screen - No blue at all anywhere around the
contoured borders.  Panels rollout smoothly and timely - Demonstration mode
that simulates action graphics in an LCD like window are smooth and they
startup in less then a second of the button press.

It does not stay that way though - sometimes it starts up in my XP PRO
system and looks and operates pretty much the same as I described above on
the 98SE and ME machines.  The demo mode then takes five to eight seconds to
start - jerky around screen - blue splotches etc.

What is a bit interesting is that I can command my video (GeForce4) to
rotate my CRT screen (desktop) 180 degrees and then rotate back to normal
and sometimes by doing this the GUI goes back to what I would call the
normal mode!

We have been looking long and hard to try and figure this out as our C# .NET
developer has not been able to duplicate this on her machine running 98SE.

Since the GUI coder located out of the country, I've emailed screen shots
from all of the various machines to her and she still can't put her finger
on the problem.

Between this and trying to resolve issues of threading with C++ backend code
that must communicate with the GUI in C# .NET I'm starting to pull my hair
out.


Are any known documented or undocumented problems inherent in C#. .Net that
might cause this?  Or are we missing some basic concept in the coding of C#
or .NET?

Outside of the above items we believe the coder is going to move to C++.NET
so that we can thread our native C++ back-end code with the GUI.  I'm
holding on to my cap for this as it will probably throw more items into the
mix.

Thanks for any help advice.

PeterV  WB3FSR

[EMAIL PROTECTED]

===================================
This list is hosted by DevelopMentor.  http://www.develop.com Some .NET
courses you may be interested in:

Guerrilla ASP.NET, 10 Nov 2003 in London and 26 Jan 2004, in Los Angeles
http://www.develop.com/courses/gaspdotnet

Guerrilla .NET, 8 Dec 2003, in Los Angeles
http://www.develop.com/courses/gdotnet

View archives and manage your subscription(s) at http://discuss.develop.com

===================================
This list is hosted by DevelopMentorŪ  http://www.develop.com
Some .NET courses you may be interested in:

Guerrilla ASP.NET, 10 Nov 2003 in London and 26 Jan 2004, in Los Angeles
http://www.develop.com/courses/gaspdotnet

Guerrilla .NET, 8 Dec 2003, in Los Angeles
http://www.develop.com/courses/gdotnet

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to