截图软件中使用非模态对话框

来源:互联网 发布:淘宝买女鞋哪家店好 编辑:程序博客网 时间:2024/06/16 00:07

截图软件的想法是

step1: 点击一个按钮;

step2: 隐藏截图程序对话框窗口 ;

step3: 显示一半透明窗口;

step4: 使用鼠标标识区域;

step5: 保存选取区域为图片;


目前使用vs2010 MFC实现到了step3,效果如下,点击按钮后呈现一半透明窗口,可以看到后面的窗口,不过目前的问题是鼠标会穿透到后一个窗口上,需要进一步解决。



非模态对话框的使用可以参见“VS2010之MFC入门到精通教程“。

在此记录下点击按钮后的MFC代码:



void CStockControlDlg::OnBnClickedButtonpricearea()
{
// TODO: 在此添加控件通知处理程序代码
price_area_flag = 1;
    SetCapture();


if (NULL == m_pFullScreanDlg) 
{
// 创建非模态对话框实例
m_pFullScreanDlg = new CFullScreanDialog();
m_pFullScreanDlg->Create(IDD_FULLSCREAN_DIALOG, this);
}
// 显示非模态对话框
m_pFullScreanDlg->ShowWindow(SW_SHOW);
m_pFullScreanDlg->ShowWindow(SW_MAXIMIZE);
//设置窗口透明度  
    m_pFullScreanDlg->ModifyStyleEx(0, WS_EX_LAYERED);  
    m_pFullScreanDlg->SetLayeredWindowAttributes(RGB(0,0,0),150,LWA_ALPHA); 
//
ShowWindow(SW_MINIMIZE);
    m_pFullScreanDlg->ShowWindow(SW_MAXIMIZE); 

}