方法一:在对话框的属性中,在more   style中有一项是System   model,选上它,即可!

方法二:OnInitDialog里加入SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);


外部调用: m_dialog->SetWindowPos(&wndTopMost, 0, 0, 400, 400, SWP_SHOWWINDOW);



MFC弹出非模态对话框


新建对话框IDD_DIALOG_TEST


用向导新建相应的类CTestDialog


在文件头#include “TestDialog.h”




CTestDialog *pTestDlg = new CTestDialog();
pTestDlg->Create(IDD_DIALOG_TEST, this);
pTestDlg->ShowWindow(SW_SHOW);



窗口保持在最前方


SetWindowPos(&wndTopMost,110,108,811,491,SWP_SHOWWINDOW);//这是标准位置


销毁窗口


pTestDlg->Destroy Windows;


delet pTestDlg;
方法一:在对话框的属性中,在more   style中有一项是System   model,选上它,即可!方法二:OnInitDialog里加入SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);外部调用: m_dialog->SetWindowPos(&wndTopMost, 0, 0, 400, 400, SWP_SH Create( IDD_DIALOG, GetDesktopWindow() ); 这样哪个窗体获得焦点就会位于最 ,而那些没有指定GetDesktopWindow()的子窗体仍然会位于父窗体之上。
MFC 窗口 置顶 MFC 窗口 置顶,此处所说的 MFC 窗口 指的是应用程序 窗口 包含单 对话框 或者视图-文档结构 对话框 。 置顶:永远显示在其他应用程序之 。 文档-视图结构在函数 BOOL CXXXApp::InitInstance()// ::SetWindowPos(m_pMainWnd->m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); 对话框 在B
1. 窗口 置顶 (1)函数原型: BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int x, int y,int cx, int cy, UINT nFlags); (2)参数: 1)hWnd: 窗口 句柄。 2)hWndlnsertAfter:在z序中的位于被置位的 窗口 窗口 句柄。该参数必须为一个 窗口 句柄,或下列值之一: HWND_
在系统中存在多个显示器是经常碰到的情况,如果存在,在哪个显示器上执行满屏的时候,系统不能随意把执行播放或者普通显示到首个显示器中,而是应该显示在显示界面当 的显示接口中。 以下讨论windows下 MFC 的多显示器支持。 先看以下代码, MFC view的视图类中,我们使用封装类CMonitor,可以获取有多少个显示器,并且得到显示的矩形 窗口 int C MFC Application3View::MonitorMonitor(RECT &rect) int count = CMonito
MFC 对话框 窗口 最小化之后不能接收按键消息的问题,与 MFC 窗口 的最小化问题类似,也是因为焦点被转移到其他 窗口 导致的。解决这个问题的方法也很类似,在 对话框 的 PreTranslateMessage 函数中处理 WM_SYSCOMMAND 消息,判断是否是最小化操作,如果是,则将焦点设置为当 对话框 窗口 。 以下是处理 WM_SYSCOMMAND 消息的示例代码: ```c++ BOOL CMyDialog::PreTranslateMessage(MSG* pMsg) if (pMsg->message == WM_SYSCOMMAND && pMsg->wParam == SC_MINIMIZE) // 最小化操作 SetForegroundWindow(); // 将焦点设置为当 对话框 窗口 return CDialog::PreTranslateMessage(pMsg); 这样就可以解决 MFC 对话框 窗口 最小化之后不能接收按键消息的问题了。