MFC如何重绘对话框 效果如图 10

 我来答
Frank7258
2011-03-07 · TA获得超过1503个赞
知道小有建树答主
回答量:381
采纳率:0%
帮助的人:550万
展开全部
重载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.贴图的窗口个人觉得很不好看。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友96ffcf7
推荐于2016-10-11 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118722
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
响应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); //
需要重绘的部分
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
菜日派8488
2011-03-07 · TA获得超过324个赞
知道答主
回答量:270
采纳率:0%
帮助的人:0
展开全部
plImage转换为CImage,这样就转到了MFC这个层次,再怎么处理就是MFC的事了。
如果要偷懒的话,用Opencv的highgui也可以动态显示图片的,这样不用转换iplImage
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式