如何让弹出对话框居中?

亚细亚 2009-05-05 02:53:04

IDD_ABOUT DIALOG DISCARDABLE 0,0,239,66
STYLE DS_MODALFRAME|WS_POPUP|WS_CAPTION|WS_SYSMENU
CAPTION "My About Box"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "&OK",IDOK,174,18,50,14
PUSHBUTTON "&Cancel",IDCANCEL,174,35,50,14
GROUPBOX "信息",IDC_STATIC,7,7,225,52
CTEXT "information",
IDC_STATIC,16,18,144,33
END


DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_ABOUT), hwnd, AboutDlgProc);
如何让弹出对话框居中?
...全文
508 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WaistCoat19 2009-05-05
  • 打赏
  • 举报
回复
在About窗口过程中的WM_INITDIALOG中做处理。

1)通过GetParent取得父窗口句柄
2)通过GetClientRect取得父窗口位置
3)计算子窗口在父窗口中间的位置通过SetWindowPos来设置About对话框位置。
亚细亚 2009-05-05
  • 打赏
  • 举报
回复

如何让对话框居中父窗口。
亚细亚 2009-05-05
  • 打赏
  • 举报
回复
DialogBox(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_ABOUT), hwnd, AboutDlgProc);
能设置在父窗口居中吗?
亚细亚 2009-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 VBSpine 的回复:]
屏幕中心?
父窗口中心?

好像可以用GetDlgItem之类的函数获得对话框句柄,然后SetWindowPosition来设置窗口位置
[/Quote]
父窗口中心。
sentball 2009-05-05
  • 打赏
  • 举报
回复
记得可以CenterWindow
KevinHo 2009-05-05
  • 打赏
  • 举报
回复
首先获得对话框的句柄,然后有一个API:MoveWindow(),这个函数改变指定窗口的位置和尺寸,要比SetWindowPosition()容易理解
Paradin 2009-05-05
  • 打赏
  • 举报
回复
GetSystemMetrics(SM_CXSCREEN)得到屏幕宽
SM_CYSCREEN 得到屏幕高
九桔猫 2009-05-05
  • 打赏
  • 举报
回复
屏幕中心?
父窗口中心?

好像可以用GetDlgItem之类的函数获得对话框句柄,然后SetWindowPosition来设置窗口位置

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧