1. 调试可使用消息对话框
char p[3];
snprintf(p, 3, "%d", i);
AfxMessageBox(p);
2. 禁止改变窗口的大小和不能移动的窗口
- 对话框程序
在属性窗口中,找到“边框”属性,选择Resizing以外的属性,如None(无边框)或Thin(薄边框)。 - 单文档程序
通过修改工程中的CMainFrame::PreCreateWindow函数来限制窗口大小调整。在这个函数中,你可以移除WS_THICKFRAME和WS_MAXIMIZEBOX样式来禁止用户调整窗口大小和禁用最大化按钮。
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CFrameWnd::PreCreateWindow(cs))
return FALSE;
cs.style &= ~WS_THICKFRAME;
cs.style &= ~WS_MAXIMIZEBOX;
cs.style &= ~WS_MINIMIZEBOX;
return TRUE;
}
3. 保存窗口图像
CClientDC dc(this);
CRect rect;
GetClientRect(&rect);
HBITMAP hbitmap = CreateCompatibleBitmap(dc, rect.right - rect.left, rect.bottom - rect.top);
HDC hdc = CreateCompatibleDC(dc);
HBITMAP hOldMap = (HBITMAP)SelectObject(hdc, hbitmap);
BitBlt(hdc, 0, 0, rect.right - rect.left, rect.bottom - rect.top, dc, 0, 0, SRCCOPY);
CImage image;
image.Attach(hbitmap);
CString strFilter = _T("位图文件(*.bmp)|*.bmp|JPEG 图像文件|*.jpg|GIF图像文件 | *.gif | PNG图像文件 | *.png |其他格式(*.*) | *.* || ");
CFileDialog dlg(FALSE, _T("bmp"), _T("iPaint1.bmp"), NULL, strFilter);
if (dlg.DoModal() != IDOK)
return;
CString strFileName;
CString strExtension;
strFileName = dlg.m_ofn.lpstrFile;
if (dlg.m_ofn.nFileExtension == 0)
{
switch (dlg.m_ofn.nFilterIndex)
{
case 1:
strExtension = "bmp"; break;
case 2:
strExtension = "jpg"; break;
case 3:
strExtension = "gif"; break;
case 4:
strExtension = "png"; break;
default:
break;
}
strFileName = strFileName + "." + strExtension;
}
CString saveFilePath = strFileName;
HRESULT hResult = image.Save(saveFilePath);
if (FAILED(hResult))
{
MessageBox(_T("保存图像文件失败!"));
}
image.Detach();
SelectObject(hdc, hOldMap);