當前位置:編程學習大全網 - 源碼下載 - 誰試過用C#+API挑戰MessageBoxIndirect-CSDN論壇

誰試過用C#+API挑戰MessageBoxIndirect-CSDN論壇

前提是妳的這個MsgParams結構必須Marshal正確哦,如果不正確的話不會導致調用Marshal.SizeOf的失敗,但妳的這個函數仍然無法調用。cbSize的大小是為以後擴展用的

public struct HelpInfo

{

}

public delegate void MsgboxCallback(HelpInfo helpInfo);

[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Auto)]

public struct MsgboxParams

{

public int cbSize;

public IntPtr hwndOwner;

public IntPtr hInstance;

public string text;

public string caption;

public int style;

public string icon;

public int helpId;

public IntPtr callback;

public int languageId;

}

class Program

{

[DllImport("user32.dll", CharSet = CharSet.Auto)]

public static extern int MessageBoxIndirect(ref MsgboxParams param);

[DllImport("user32.dll", CharSet = CharSet.Auto)]

public static extern IntPtr LoadIcon(IntPtr hInstance, string iconName);

static void Main(string[] args)

{

MsgboxParams mp=new MsgboxParams();

mp.hwndOwner = IntPtr.Zero;

mp.hInstance = IntPtr.Zero;

mp.text = "ok";

mp.caption = "ti xing";

mp.style = 0;

mp.icon = "32512";

mp.helpId = 0;

mp.callback = IntPtr.Zero;

mp.languageId = 0;

mp.cbSize = Marshal.SizeOf(mp);

MessageBoxIndirect(ref mp);

}

}

  • 上一篇:matlab 小波閾值去噪 求高手賜教!
  • 下一篇:平板電腦都有有root嗎
  • copyright 2024編程學習大全網