void CtestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CWnd* pwnd = this->GetDlgItem(IDC_BUTTON1);
if(pwnd == NULL)
{
MessageBox("提示","获取按钮失败");
return;
}
CImage image;
CRect rect;
CWindowDC winDC(pwnd);
pwnd-> GetWindowRect(&rect);
int nBPP = winDC.GetDeviceCaps(BITSPIXEL) * winDC.GetDeviceCaps(PLANES);
if(nBPP < 24)
{
nBPP = 24;
}
BOOL bStat = image.Create(rect.Width(), rect.Height(), nBPP);
if(!bStat)
{
MessageBox("提示","创建图片失败");
return ;
}
CImageDC imageDC(image);
::BitBlt(imageDC, 0, 0, rect.Width(), rect.Height(), winDC, 0, 0, SRCCOPY);
HRESULT hr = image.Save("test.png");
if(FAILED(hr))
{
MessageBox("提示","图片保存失败");
return ;
}
WinExec("mspaint.exe test.png", TRUE);
return ;
}
我自己创建了一个按钮,控件ID是IDC_BUTTON1在点击按钮的时候打开画图工具,显示按钮 我的环境是vs2008 win7,你可以自己试试