PDA

View Full Version : سوال: قرار دادن عکس در Messagebox



c-sharp_South
سه شنبه 25 مهر 1391, 16:16 عصر
سلام دوستان.
میخواستم بپرسم چطوری میشه یک عکس رو توی messagebox قرار داد ؟

ممنون میشم کمکم کنید.
یا حق

morteza271
سه شنبه 25 مهر 1391, 16:32 عصر
تا جائیکه من اطلاع دارم در MessageBoxهای معمولی امکانش نیست!
شما یا باید خودتون یکی بسازین.
یا اینکه جستجو کنید و یک کامپوننت پیدا کنید.

من روش اول رو پیشنهاد میکنم چون می تونید مطابق با دیزاین برنامتون درستش کنید.
در ضمن حتما نیاز نیست یه کامپوننت بسازین خیلی راحت می تونید در پروژتون یه فرم بسازین و هر وقت خواستین پیام نشون بدین اونو ShowDialog کنید.
موفق باشید

c-sharp_South
سه شنبه 25 مهر 1391, 17:33 عصر
مرسی . حق با شماست . border style form رو عوش میکنم و form رو شبیه چیزی می خوام میکنم.
بدرود

مهرداد صفا
چهارشنبه 26 مهر 1391, 11:42 صبح
سلام دوستان.
میخواستم بپرسم چطوری میشه یک عکس رو توی messagebox قرار داد ؟

ممنون میشم کمکم کنید.
یا حق
با سلام
با استفاده از تابع FindWindowA از User32.dll، هندل پنجره MessageBox را به دست بیاورید، سپس با استباده از Graphics.FromHwnd یک Graphics ساخته و تصویر را رسم کنید. به این صورت:

//in the name of god
//صل الله علی محمد و آله
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace WindowsFormsApplication1
{

public class MessageBox
{
[DllImport("user32", EntryPoint = "FindWindowA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32", EntryPoint = "GetWindowRect", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern int GetWindowRect(IntPtr hwnd, ref rect lpRect);
public struct rect
{
public int Left;
public int Top;
public int Right;
public int Bottom;
}


public static void Show(string title, string text, string ImageFileName)
{
System.Threading.Thread NewThread = new System.Threading.Thread(new System.Threading.ThreadStart(() => System.Windows.Forms.MessageBox.Show(text, title)));
NewThread.Start();
NewThread.Priority = System.Threading.ThreadPriority.Highest;
System.Threading.Thread.Sleep(50);
System.Media.SystemSounds.Hand.Play();
IntPtr MessageBoxHandle = FindWindow(null, title);
rect messageBoxRect = default(rect);
GetWindowRect(MessageBoxHandle, ref messageBoxRect);
using (System.Drawing.Graphics MessageBoxGraphic = System.Drawing.Graphics.FromHwnd(MessageBoxHandle) )
{
MessageBoxGraphic.DrawImage(Image.FromFile(ImageFi leName), 0, 0, messageBoxRect.Right - messageBoxRect.Left, messageBoxRect.Bottom - messageBoxRect.Top);
}
}
}
}

موفق باشید.

r_s1389@yahoo.com
چهارشنبه 26 مهر 1391, 12:31 عصر
میتونی در WPF یه کادر پیغام خوب درست کنی.

mh1762
چهارشنبه 26 مهر 1391, 13:03 عصر
با سلام بنده دارم روی یک مسج باکس فارسی کار میکنم این امکان رو هم براش میزارم تا شما نیز بتونید استفاده کنید .

الهم صلی علی محمد و ال محمد

nilmil_nil
چهارشنبه 26 مهر 1391, 16:27 عصر
من یه مسیج باک فارسی ساختم
همراه باسورس گذاشتم تو فروم
میتونی از امضا دانلود کنی