|
Did you ever figure this one out?
|
|
|
|
|
Hey,
All I wanna know is how to know when the user is scrolling thats all.
Like if his mouse pointer is over my form, i wanna know when he is scrolling so that I can resize and change things.
Thanks,
|
|
|
|
|
Did you want to know when the user is rotating the mouse wheel?
Here's the solution. If your window has focus, this will work even if the mouse isn't over the window.
private const int WM_MOUSEWHEEL = 0x020A;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_MOUSEWHEEL)
{
if (m.WParam.ToInt32() > 0)
{
}
else
{
}
}
base.WndProc(ref m);
}
|
|
|
|
|
Hey Ethan,
Thanks that worked, but now I have a another question, I hope you don't mind.
I have a Panel on my form and in run time I load it with an EMF image. Now I want to zoom in and out of this panel, so I use this code:
private const int WM_MOUSEWHEEL = 0x020A;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_MOUSEWHEEL)
{
if (m.WParam.ToInt32() > 0)
{ //Mouse wheel rotated forward (away from user)
viewerPanel.Width += 10;
viewerPanel.Height += 10;
}
else
{ //Mouse wheel rotated backward (towards user)
viewerPanel.Width = viewerPanel.Width - 10;
viewerPanel.Height = viewerPanel.Height - 10;
}
}
base.WndProc(ref m);
}
How do I Zoom in/out around a specific area of the Panel, like if my cursor is over one part of the image, it must enlarge that area, not simply the whole Panel.
Many Thanks
|
|
|
|
|
If you're working with images, the ImageBox control is the best choice. However, it lacks some crucial functionality. To implement scrolling and panning, you might be interested in this article:
http://www.codeproject.com/cs/miscctrl/zoompancontrol.asp
You could start with the your own version of the scrolling picturebox control, and add the code above to it. When the mouse wheel is rolled, check the cursor position over the control. Center the image at the cursor position (using AutoScrollPosition and the related fields), and then do the zoom-in.
|
|
|
|
|
Hey Ethan,
I am using the EMF image type, and ImageList control does not support it. Got any other ideas of how to have the zoom functionality of windows picture and fax viewer in my windows forms app?
|
|
|
|
|
You could either convert the EMF image to another type, or you could use the panel to render it.
What code are you using to draw the EMF to the panel?
You could write a custom control, with two panels. One would contain the image, and the other (the parent) would provide the scrolling.
In the child-panel, paint the image depending on a 'Zoom' property.
ex.
zoom is 100%, resize the panel to the size of the image (redraw panel)
zoom is 200%, panel is twice the size of the image (redraw panel)
Then set AutoScroll to true on the parent panel. Also set AutoScrollMinSize to the size of the child panel (every time the zoom level is changed).
This article provides a good example, just substitue the PictueBox for a panel. Pay close attention to the function CenterImage .
|
|
|
|
|
Hi NewbieDude!
you can also override the OnMouseWheel method.
protected override void OnMouseWheel(MouseEventArgs e)
{
base.OnMouseWheel (e);
if((e.Delta / -120) > 0)
{
}
else
{
}
}
hope that helps!
microsoc
|
|
|
|
|
Hello.
I have a webform that when the user clicks print receipt, it will print a report. This works ok. But l want to pass a variable from the form to be displayed in the report.
My code so far: I want to pass totalcost and display that in the report.
<br />
string totalCost = "1000";<br />
rptReceipt customerReceipt = new rptReceipt();<br />
this.rptViewerReceipt.SelectionFormula = "{PurchasedProducts.CustomerID} = '" + customerID + "' ";<br />
this.rptViewerReceipt.ReportSource = customerReceipt;<br />
this.rptViewerReceipt.Refresh();<br />
this.rptViewerReceipt.Show();<br />
<br />
Many thanks in advance,
Steve
|
|
|
|
|
Running th efollowing code under .net 2.0
can you see why there is an error on Substring and LastIndexOf please?
The error is: system.net.mail.attachmentcollection does not contain a definition for substring. Same error is produced for LastIndexOf
Thanks
Outlook.MailItem memo = (Outlook.MailItem)app.CreateItem(Outlook.OlItemType.olMailItem);
// populate... - never quite as straightforward as it should be...
if (base.To != null)
{ // might not be a "to" selected
memo.To = base.To.Substring(base.To.LastIndexOf("\"") + 1);
}
memo.Subject = subject;
|
|
|
|
|
It's not a string, it's a collection.
You have to loop through the collection and do the string operation on each member.
---
b { font-weight: normal; }
|
|
|
|
|
sorry I do not follow.
Could you please give an example based on the code that I have sent?
Thanks
|
|
|
|
|
I haven't checked the documentation for the collection, but if it simply contains strings, it would look like this:
foreach (string email in base.To) {<br />
memo.To.Add(email.Substring(email.LastIndexOf("\"") + 1));<br />
}
---
b { font-weight: normal; }
|
|
|
|
|
Hi,
There are two errors that I get now:
the error on foreach is: can not convert type: system.net.mail.MailAddress to string
and the other error is on Add
the error is: string does not contain a definition for Add
Thanks
|
|
|
|
|
It's apparent you don't have an understanding of the type system. A type contains methods (such as Add). If you have a function called
private void Add(MailItem item);
You can only pass a MailItem instance into the Add method. You cannot go
Add("hello");
or
Add(5);
And so on. Likewise, string.Add doesn't exist. And you can only use foreach over a System.Collections.IEnumerable type. To solve your problem, check the return type on System.Net.MailMessage.To, does it return a string? Guessing from your error, it doesn't return a string. So use
foreach(WhateverTypeItReturns r in message.To)
{
...
}
|
|
|
|
|
Check the documentation for the classes that you try to use.
It seams like you are trying to get a collection of mail addresses and put into a property that only accepts a single address. That is of course not possible, and you probably have to create one object for each of the addresses.
---
b { font-weight: normal; }
|
|
|
|
|
Simple. The To property does not return a string, therefore, there is no SubString method to call on it.
To returns a Recipients Collection. The is no SubString method to call on this collection. You can find the docs on this here[^] on MSDN.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Try this:
foreach (MailAddress email in base.To)
{
memo.To.Add(email.Address.Substring(email.Address.LastIndexOf("\"") + 1));
}
|
|
|
|
|
The error is:
string does not have a definition for Add
Thanks
|
|
|
|
|
I have a System.Drawing.Image img object, which I got from a stream, I save it to a file, in this way:
img.Save(SomeFileStream, System.Drawing.Imaging.ImageFormat.Tiff);
And it works just fine. However, not every picture editor wants to open it - the error is : Decompression library not available, like it's saved in some weird format, or something, thus the viewing control cannot show it.
How do I deal with this? Should I save the Image object in a different way?? Or what??
Thanks
|
|
|
|
|
just change the format from .Tiff to .bmp or jpeg
i think that will help u
Regards,
Pramod
|
|
|
|
|
Yadav Pramod wrote: just change the format from .Tiff to .bmp or jpeg
Well, maybe, but I have to save it in tiff format....
|
|
|
|
|
There are various compressions in use in the TIFF format. Make sure your other apps are NOT using JPG compression in the TIFF.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
That's what I thought also. How do I specify which compression to use, and (probably a dumb question) what kind of compressions are there?
-- modified at 9:26 Wednesday 25th January, 2006
|
|
|
|
|
Whoops! I got your question backwards. I thought you were saving these images in other apps and your application wouldn't open them. Sorry!
The TIFF format support built into the .NET Framework pretty much sucks. I'd seriously consider using a 3rd party library for image handling or saving to a full, no compression, format like .BMP and converting the image using an outside utility.
Google search for "TIFF .NET[^]".
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|