我正在创建一个允许您复制文本的自定义消息框,但我希望它看起来与标准消息框完全相同,所以我想将按钮文本设置为系统语言,就像MessageBox类一样.
有谁知道如何获得该文本(“是”,“否”,“取消”等)?
有谁知道如何获得该文本(“是”,“否”,“取消”等)?
解决方法
感谢您使用Snarfblam链接的答案,我可以弄清楚其余部分.
class Program { [DllImport("user32.dll",CharSet = CharSet.Auto)] static extern int LoadString(IntPtr hInstance,uint uID,StringBuilder lpBuffer,int nBufferMax); [DllImport("kernel32")] static extern IntPtr LoadLibrary(string lpFileName); private const uint OK_CAPTION = 800; private const uint CANCEL_CAPTION = 801; private const uint ABORT_CAPTION = 802; private const uint RETRY_CAPTION = 803; private const uint IGNORE_CAPTION = 804; private const uint YES_CAPTION = 805; private const uint NO_CAPTION = 806; private const uint CLOSE_CAPTION = 807; private const uint HELP_CAPTION = 808; private const uint TRYAGAIN_CAPTION = 809; private const uint CONTINUE_CAPTION = 810; static void Main(string[] args) { StringBuilder sb = new StringBuilder(256); IntPtr user32 = LoadLibrary(Environment.SystemDirectory + "\\User32.dll"); LoadString(user32,OK_CAPTION,sb,sb.Capacity); string ok = sb.ToString(); LoadString(user32,CANCEL_CAPTION,sb.Capacity); string cancel = sb.ToString(); LoadString(user32,ABORT_CAPTION,sb.Capacity); string abort = sb.ToString(); LoadString(user32,RETRY_CAPTION,sb.Capacity); string retry = sb.ToString(); LoadString(user32,IGNORE_CAPTION,sb.Capacity); string ignore = sb.ToString(); LoadString(user32,YES_CAPTION,sb.Capacity); string yes = sb.ToString(); LoadString(user32,NO_CAPTION,sb.Capacity); string no = sb.ToString(); LoadString(user32,CLOSE_CAPTION,sb.Capacity); string close = sb.ToString(); LoadString(user32,HELP_CAPTION,sb.Capacity); string help = sb.ToString(); LoadString(user32,TRYAGAIN_CAPTION,sb.Capacity); string tryAgain = sb.ToString(); LoadString(user32,CONTINUE_CAPTION,sb.Capacity); string cont = sb.ToString(); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。