Global variables are generally a sign of poorly thought out design. However there are cases when you want to make something available to classes across your application (like values from the application's config class).
I would suggest a couple of approaches:
1. Is to make the variable available through a static property of an appropriate class.
2. Is to make a class (a singleton) that exposes these values through static properties. For instance a Config class that retrieves the information from a config file and exposes them to the rest of the application.
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
I have MFC Dll with dialog, I used it in C# App.
It's working functionality, but
The MFC Dialog stays grey. (Missing WM_PAINT (?
I think that I have problem with window handle.
Can U help me?
Can you give us a code fragment of how your C# code invokes the MFC built dialog/control? There are plenty of things that can go wrong. Without more information its purely conjecture on what to do to fix it.
The Code in the C#:
export static int Init(CallBack* xxx, SData* ps);
The function get delegate to return event from the DLL and data on the application. ( name and ID, not window handle or other data like it)
Sorry I forgot an essential point.
All the function (from App to the Dll ) was at other Thread ("Dll thread").
Not in the main (GUI) thread, but in the same one (using queue)
The init(…) and other function first enter to Q and the pulled by the "Dll Thread")
i've got a small problem right now. i started developing a small toolbar for my personal use which is docked at the top of the desktop. now i want to change the workingarea of the desktop, so other window forms cannot overlap my toolbar.
If you're not using a desk band (an "explorer band" is also a desk band, BTW) and instead simulating your bar being docked in the desktop, then you're close to using an app bar, which the task bar is, as well as the old Office shortcut bar. See the article, C# does Shell, Part 3[^], which discusses app bars using C#.
There are several ways. One is through markup like with HTML that uses the <sup> and <sub> tags. I doubt that's appropriate here, however.
Another is to get a font that is full of these. It's not uncommon to have a font represent symbols. Microsoft uses several fonts for glyphs in Outlook and other applications.
Since .NET supports Unicode, there is the superscript and subscript diacritics in the U+2070 through U+209F range. The problem is that you need a font that supports them. Tahoma (default font) and Arial Unicode MS currently do not, nor do any of the other common ones. If you had a font that supported this Unicode range and displayed the text in a TextBox (for example), then you could use:
"n\u2081 + n\u2082 ="
Finally, about your only other option is to owner-draw the text yourself in parts using Graphics.DrawString and either off-setting the coordinates of the upper-left corner or using a StringFormat with a LineAlignment set accordingly.
Just use the Encoding class to get the bytes for XML using whatever encoding you want, send the bytes, then use the same Encoding class on the server to get the XML from the bytes. I'd recommend a UnicodeEncoding to allow for the full range of characters.
Everything - even text files like XML - is still just an array of bytes. You must Encode before transmitting it across the wire. Even every web page, Web Service, etc. do that. What do you think the second clause of the Content-Type header (if there) or the Content-Encoding header is? That just the way it works.
Is it possible to show a window form as the child of another window form in an SDI application? It was possible in VC++ 6.0 to show a dialog box as the child of another dialog box such as in property sheets. What I wanna know is that is this possible in C# also?
Its very urgent, any help will be greatly appreciated.
I'm not sure if this is what you are trying to achieve. If you want the child window to be contained within the frame of the parent window, I'd suggest either using mdi or putting your child window on a user control and adding it to your parent window's controls.
The easiest way to do this, in my opinion, is to create a user control. This is basically a form without a border, at least from my understanding. Make your control the size of the client area of your parent window, and then add it to the controls of your parent window.
//This is in your variable declarations
private NameSpace.UserControl ChildControl;
//This is in your method that shows the control
ChildControl = new NameSpace.UserControl();
Controls.Add( ChildControl );
Just make sure you have some way of closing your user control, because your frame is still the frame of your parent window, and will close the entire program. Put a button on your user control that will close it or something.
My advice on these is to not get carried away. Remember, you are only covering up the window with your user control, you aren't replacing it. I think this will work how you want it to work. Good luck!