gpt4 book ai didi

c++ - 如何使对话框标题居中?

转载 作者:搜寻专家 更新时间:2023-10-31 01:50:49 25 4
gpt4 key购买 nike

我在我的资源文件中创建了我的 IDD_DIALOG。

我正在使用以下代码将 DIALOG 置于屏幕中央:

case WM_INITDIALOG:
RECT Rect;
::GetWindowRect(hwndDlg, &Rect);
::SetWindowPos(hwndDlg, HWND_TOPMOST, (::GetSystemMetrics(SM_CXSCREEN)/2 - ((Rect.right - Rect.left)/2)), (::GetSystemMetrics(SM_CYSCREEN)/2 - ((Rect.bottom - Rect.top)/2)), (Rect.right - Rect.left), (Rect.bottom - Rect.top), SWP_SHOWWINDOW);
return TRUE;

我的问题是,如何将标题(对话框标题)与当前代码一起居中?

谢谢。

最佳答案

除非你真的需要,否则最好不要。

您可能需要绘制自定义边框/框架,这是 Office 等一些应用程序所做的,以便它们可以在标题栏中包含额外的按钮小部件。 (Office 还将标题栏中的文本居中...)它非常复杂,此外还有两种不同的技术,具体取决于您运行的是 pre-XP 还是启用了 DWM 的 Vista。我找到一篇文章 that summarizes some of the issues involved in the Vista/DWM case .如果未启用 DWM,您可能需要支持旧技术,handling and overriding WM_NCPAINT .

光是让标题栏居中就需要很多的工作!

事实证明,标题栏的对齐方式随着时间的推移发生了变化:在 Win3.1 中,它居中;然后在 95 时代,它变成了左对齐(或者对于从右到左的语言是右对齐的)。事实证明事情又回到了原点,在桌面模式下,Windows 8 再次恢复到居中状态。

也许最简单的答案是“如何使对话框标题居中?”是:升级到 Windows 8 :-)

关于c++ - 如何使对话框标题居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14574011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com