截图软件的想法是
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);
}