+ -
当前位置:首页 → 问答吧 → messagebox能不能设置成TopMost的

messagebox能不能设置成TopMost的

时间:2008-06-20

来源:互联网

如题,有什么API或者其他方法吗

作者: zhouyongqi   发布时间: 2008-06-20

自己写个消息框来实现不就可以了

作者: zzyhuian06142   发布时间: 2008-06-20

MessageBox.Show("前端显示", "TopMostMessageBox", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);

作者: GentleCat   发布时间: 2008-06-20

MessageBox.Show("", "", MessageBoxButtons.OK, null, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);

作者: ericzhangbo1982111   发布时间: 2008-06-20

有API嘛,消息框是另外一个c++程序写的,我想用.net程序用API设置那个messagebox的TopMost

作者: zhouyongqi   发布时间: 2008-06-20

如果没错的话,记得一个叫 setwindowPos 的API你查查看,有一个参数是设置顶层窗体的

作者: GentleCat   发布时间: 2008-06-20

镇难伺候

[DllImport("user32.dll")]
public static extern bool SetWindowPos(HandleRef hWnd, HandleRef hWndInsertAfter, int x, int y, int cx, int cy, int flags);

HWND_TOPMOST = new HandleRef(null, new IntPtr(-1));
HWND_NOTOPMOST = new HandleRef(null, new IntPtr(-2));

public void SetTopMost(bool topMost)

{

  HandleRef hWndInsertAfter = topMost ? HWND_TOPMOST : HWND_NOTOPMOST;

  SafeNativeMethods.SetWindowPos(new HandleRef(this, Handle), hWndInsertAfter, 0, 0, 0, 0, 3);

}

作者: ericzhangbo1982111   发布时间: 2008-06-20

SetWindowPos我试过不过不行,不知道跟messagebox是不是有关系,它不是一个窗体

作者: zhouyongqi   发布时间: 2008-06-20

我想,是windows画出来的东西总是可以找到他的 handle 的吧?

那就通过messagebox的标题用FindWindows找到他的handle,
然后就可以通过setwindowsPos 设置了吧~

作者: GentleCat   发布时间: 2008-06-20

怎么 找到呢

作者: hzyooyil   发布时间: 2011-12-22

相关阅读 更多