For months now, I have been trying to solve a problem regarding rendering images properly onto Aero glass. From what I have gathered so far, to do this you need to render the graphics object as a bitmap, because the Aero requires an alpha channel. To be more specific, what I am trying to do is make a perfect, non-flicker text box ( and other controls). I do not want to fall back to rendering part of the form aero, as I may want more than one text box. Also, the DrawToBitmap function works, but is far too slow, which is why I want to accomplish this with BitBlt.
What I have right now, is the Graphics control of a TextBox, stored as a IntPtr. How do I take this graphics control, load it into a Bitmap, and draw that Bitmap with BitBlt? (or as the link suggests, fixing the alpha value of the Graphics object)
So my question is, is there anyway to do this with Visual Basic 2010 .NET?
If anyone can answer this question, provide input, or a equivalent alternative, I'd be very grateful.
Here is a link to a previous thread I have made, which describes the problem in much more detail:
http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvb/thread/f0e9fa0c-9535-4cdb-826f-673ef58c408a
Best regards,
Jake M.
P. S.
This link has helped greatly, and addresses my problem. However the solution on the very last post seems to be what I am looking for, however I have no idea how to convert that into visual basic.
Aero: How to draw solid (opaque) colors on glass?
Related
i would like to make a very simple HMI where i use picturebox (no fancy ) as simple and link them together , the problem is that the pictures of symbols i use (although i use png with tranparent background ) when placed in a picturebox and needed to be on top of each others (in case for example a valve to be linked with a pipeline ) the picturebox on top will hide some of the other one's details and block it so it doesn't look like one piece and something is missed .
i don't know what i really can do exactly to get rid of that
any sugestions are more than welcome
thanks in advance
It will be hard to place an control with layerd, but a best way is to create a new shape (with gdi+ drawing) on the canvas, with that, you can layer it as you want.
You can use Qt or exd++ or Visual Basic.net
I'm looking for a control, like a label, that will have comparable properties to the RectangleShape Component in Visual Studio. And I suppose I should also pose the question: are Visual Basic PowerPacks like the RectangleShape really relevant anymore?
I know it may seem silly, and will not affect the application at runtime, and I may seem like a pampered whiner, but I find the the shape components to be a real nuisance in the layout process. I feel like I'm using an out-dated control. And I particularly find the inability to multi-select regular controls and shape components at the same time most annoying.
Specifically here is what I'm tying to accomplish:
I have been tasked with rewriting an old VB6 program in VB.NET and am constrained to keep the visuals the same as what people are used to.
In the form above, I need a DiagonalCross pattern behind some text, and I have not found anything that will accomplish the same thing as the RectangleShape component. The FillStyle property only seems to be available in shape components.
For the moment I have resorted to putting all the Shapes and Controls in a Panel, so I can at least move them at the same time, but it is still a little weird to try to adjust the layout within the panel.
I'm hoping there is some way to have the same visual effect in something like a label.
And I suppose I should clarify, I'm looking to find a definitive replacement for the Rectangle Shape component.
I know it may be a silly inquiry, and that the solution may be more difficult than the issue, but I thought I would ask and make sure I'm not missing something easier to replace shapes in the layout process.
I'll greatly appreciate any input. Thanks!
EDIT: I realized that I didn't tag this properly - I should have included vb.net as a tag, on the grounds that there could be a code based solution. Note, that no changes to the resolution are made in my source code.
UPDATE: When the program starts execution, the left coordinate for each PictureBox is multiplied by ~0.376, whilst the top coordinate for each PictureBox.Top is multiplied by ~0.418 . This "down-scaling" applies to all picture boxes. The source code I have is incredibly rudimentary and cannot be responsible for this. I also looked at another project and I still face the same error. A simple but poor fix would be to divide each coordinate by the corresponding values mentioned above.
In order to show you the issue I'm facing, please look at the images below. Compare this image, where each PictureBox (i.e. a snake, set of arrows, etc.) has been placed so that they line up with a feature of the background image:
To this image, where the PictureBox elements are bunched together. Their positions have been "down-scaled" closer to the origin of the form (note that all the elements are transforming horizontally during runtime, which is why the elements are in the top right corner):
In the solution I was given (developed in VS 2010 I believe), the position of each PictureBox goes beyond the background image as shown:
It is clear that each picture box has been placed in an organized fashion. During execution, each PictureBox goes to it's intended position (i.e. lines up appropriately with the background image).
Obviously, the original developer of the solution I was given would have not faced the problem I am. The fact that the solution works properly during runtime indicates some kind of error with my instance(s) of VB. Does anyone know of any solutions?
I've came across this question which asks how to change the default resolution for a Windows 8 App and this question which asks why some applications appear differently on different machines, but they pose no clear solutions. I would appreciate any help, since it's holding me back from critical work I must do. Thank you in advance!
I feel a little silly now - I started carrying out a bit more research on VB forms and came came across this Microsoft documentation on form scaling. Realizing that my issue may have been caused by having this scaling automatically carried out, I then found the AutoScaleMode property of my form and changed it from Font to None, which resolved my problem.
Essentially I want to re-size my dateTimePicker control to fit its parent container. I have tried to do this both through the Control Editor and programmatically but I simply cannot get the drop down calendar to expand at all. So 2 part question:
a) Is this even possible to do?
b) Is there an easy-to-implement solution to having a good looking calendar that fits its parent field? (i.e. using a data grid or something similar)
Any help or knowledge is greatly appreciated!!!
The size of both objects is fixed and defined by the size of its font. Thus you might change its size by affecting the font size. This works fine with DateTimePicker but does not seem to work with MonthCalendar. After a quick research I have found a pretty curious recommendation on the MSDN forum: "you can consider third party MonthCalendar controls to meet your requirement temporarily".
There are quite a few third-party options (after a really quick search I found this) or you might even create one by your own. I personally haven't ever had any problem with the in-built controls but if the size is so important for you I guess that you would have to search/develop something by your own.
Further recommendation: rely on WPF which does contain a resizable control (DatePicker). I want to highlight here that I don't like WPF at all and that thus this recommendation is because I don't see any other option (inside .NET).
I am creating a multiplayer chess game in Visual Basic.Net and I need to create tiles for the game.
Earlier, I used buttons for the tiles, but then I realized that not only did they look ugly, but the coding part also became a problem. Also, the images of the chess pieces didn't properly fit on the buttons and they became distorted. Also, shifting the image to a different button every time a move was played also became very inefficient.
So, in view of these difficulties, I want to build a proper board, but I have no idea where to start from or what controls to use for the design. Any suggestions?
A Chess Program using VB.NET : http://www.vbdotnetheaven.com/UploadFile/kaushalgol/ChessProgramInVB11142005235115PM/ChessProgramInVB.aspx
This was coded in VB6 : http://freesourcecodevisualbasic.blogspot.se/2011/07/source-code-2-player-chess.html
You don't wany to use controls for the pieces you should just draw the image directly onto your form. You then have full control of exactly where everything is drawn.
You need to hold some form of data structure that 'remembers' where all your pieces are.
Have a look at this link to GDI+ to help get you started
I would suggest it might be too complicated for a school project. Maybe if you reduce the scope - try for just human vs human.
Anyway,
The chess programming wiki
Bruce Moreland's old page on MinMax and other adversarial search algorithms
I have more links but i cant post any links anymore. It's limited to 2 links only. Im sorry.