MFC实现弹出窗口以及拖动无标题框窗口
语言: VC++, IDE: VS2017
本例中,以点击按钮弹出窗口为示例
一、实现弹出对话框窗口
1.主对话框中增加按钮“弹出窗口”,ID命名为IDC_BTN_OPEN_DLG,添加类型为BN_CLICKED的事件处理程序OnBnClickedBtnOpenDlg,
2.资源视图中添加一个Dialog,ID为IDD_DLG_POP,作为弹出窗口,标题框可能是不需要的,可在属性中将Border先设置为None,然后设置为Thin,根据需要做下调整,例如:
3.为这个窗口添加类,命名为CPopDlg,
4.在OnBnClickedBtnOpenDlg增加如下代码,
// #include "CPopDlg.h"
CPopDlg popDlg;
popDlg.DoModal();
运行效果:
二、实现拖动无标题框窗口
上面的弹出窗口,由于属性的Border为None->Thin,无法使用鼠标拖动,可通过如下方式实现可拖动,
在类视图中,为CPopDlg类添加消息WM_LBUTTONDOWN响应OnLButtonDown,并添加如下代码即可,
PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));