如何把一个对话框放在屏幕正中间?

时间:2021-12-14 19:33:57
原来没有使用
this->SetWindowPos (&CWnd::wndTopMost,cx/2-100,cy/2-100,500,320,SWP_SHOWWINDOW|SWP_DRAWFRAME);

的时候就是放在屏幕正中的,但是使用这个函数以后就只能指定窗口位置了
有没有一个方法可以放到屏幕正中呢?

6 个解决方案

#1


int cx = GetSystemMetrics(SM_CXSCREEN); 
int cy = GetSystemMetrics(SM_CYSCREEN);

#2


CWnd::CenterWindow
void CenterWindow( CWnd* pAlternateOwner = NULL );

#3


用CenterWindow()函数来实现,
调用完SetWindowPos后在调用CenterWindow()

试一试!

#4


又学了一招!

谢谢版主问了这个问题

#5


又学了一招

谢谢

#6


谢谢

现在有一个问题

窗口出现到最中间的过程中
屏幕上有个移动的过程

有没有办法解决这个?
我现在用的方法是先取出分辨率,然后把分辨率除以2,再减去窗口大小的一半,然后作为坐标赋值给SetWindowPos 的参数x和参数y

虽然也能够实现居中显示,但是过程太繁琐了

#1


int cx = GetSystemMetrics(SM_CXSCREEN); 
int cy = GetSystemMetrics(SM_CYSCREEN);

#2


CWnd::CenterWindow
void CenterWindow( CWnd* pAlternateOwner = NULL );

#3


用CenterWindow()函数来实现,
调用完SetWindowPos后在调用CenterWindow()

试一试!

#4


又学了一招!

谢谢版主问了这个问题

#5


又学了一招

谢谢

#6


谢谢

现在有一个问题

窗口出现到最中间的过程中
屏幕上有个移动的过程

有没有办法解决这个?
我现在用的方法是先取出分辨率,然后把分辨率除以2,再减去窗口大小的一半,然后作为坐标赋值给SetWindowPos 的参数x和参数y

虽然也能够实现居中显示,但是过程太繁琐了