MFC如何重绘对话框 效果如图 10
展开全部
重载CDialog类,响应WM_NCPAINT消息,NC是Nonclient,非客户区的意思。在OnNcPaint中画窗口的样子,注意不要调用基类CDialog的OnNcPaint,否则又会画上默认的对话框边框。
另外,如果设计Windows Vista或者Windows 7的程序,可以参考微软的这篇文章,他描述了想Word 2007以及Internet Explorer 7这样的界面是如何实现的:
http://msdn.microsoft.com/en-us/library/bb688195(v=vs.85).aspx
PS.贴图的窗口个人觉得很不好看。。
另外,如果设计Windows Vista或者Windows 7的程序,可以参考微软的这篇文章,他描述了想Word 2007以及Internet Explorer 7这样的界面是如何实现的:
http://msdn.microsoft.com/en-us/library/bb688195(v=vs.85).aspx
PS.贴图的窗口个人觉得很不好看。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-10-11 · 知道合伙人互联网行家
关注
展开全部
响应WM_PAINT消息
void CRelCtrlDlg::OnPaint()
{
if( IsIconic() )
{
CPaintDC
dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon =
GetSystemMetrics(SM_CXICON);
int cyIcon =
GetSystemMetrics(SM_CYICON);
CRect
rect;
GetClientRect(&rect);
int x = (rect.Width() – cxIcon + 1) /
2;
int y = (rect.Height() – cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y,
m_hIcon);
}
else
{
CDialog::OnPaint();
if
(m_OriginPhoto)
{
DrawPicToHDC(m_OriginPhoto,IDC_SRC,3); //
需要重绘的部分
}
}
}
void CRelCtrlDlg::OnPaint()
{
if( IsIconic() )
{
CPaintDC
dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon =
GetSystemMetrics(SM_CXICON);
int cyIcon =
GetSystemMetrics(SM_CYICON);
CRect
rect;
GetClientRect(&rect);
int x = (rect.Width() – cxIcon + 1) /
2;
int y = (rect.Height() – cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y,
m_hIcon);
}
else
{
CDialog::OnPaint();
if
(m_OriginPhoto)
{
DrawPicToHDC(m_OriginPhoto,IDC_SRC,3); //
需要重绘的部分
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
plImage转换为CImage,这样就转到了MFC这个层次,再怎么处理就是MFC的事了。
如果要偷懒的话,用Opencv的highgui也可以动态显示图片的,这样不用转换iplImage
如果要偷懒的话,用Opencv的highgui也可以动态显示图片的,这样不用转换iplImage
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询