Win32自定义消息框

Ben*_*min 7 windows hook user-interface winapi subclass

我想制作一个自定义消息框.我想要自定义的是按钮的文本.

MessageBoxW(
  NULL,
  L"Target folder already exists. Do you want to overwrite the folder?",
  L"No title",
  MB_YESNOCANCEL | MB_ICONQUESTION
  );
Run Code Online (Sandbox Code Playgroud)

我想按钮文本只是改变到Overwrite,Skip,Cancel.
什么是最简单的方法?

我必须使其与Windows默认消息框具有相同的外观和感觉.

Rom*_* R. 7

正如其他人所说,一种典型的方法是创建一个对话框资源并拥有一个完全独立的对话框,您需要以看起来像标准对话框的方式设计GUI(以满足您的感觉和外观请求).如果要接受短信,可能需要添加适当调整窗口大小的代码.

对于那些想要深入了解高级事物的人来说,还有另一种选择.虽然MessageBoxAPI不能为fint调整提供太多功能,但您仍然掌握SetWindowsHookEx在手中.注册了钩子后,您可以截取标准MessageBox窗口过程并以您喜欢的方式对其进行子类化.

典型的事情包括:

  • 更改按钮文本
  • 添加更多控件
  • 添加定时自动关闭

挂钩标准窗口可以完成所有这些操作.

UPD.嘿,我意识到我有一些代码SetWindowsHookEx要分享:http://alax.info/blog/127