关于MFC开始运行的程序的绘图先后顺序

本文探讨了在MFC应用程序中,初始化绘图的顺序问题。作者在OnInitDialog()中加载图片遇到显示异常,发现静态控件仅显示大小而无图片。通过将绘图操作移到OnPaint()函数中,成功解决了图片显示问题。分享这段经历,以供新手参考,同时也欢迎经验交流。
摘要由CSDN通过智能技术生成

关于MFC开始运行的程序的绘图先后顺序

阿萨
在使用MFC进行插入图片的时候,我在OnInitDialog()中进行图片的加载和放大缩小。
使用的static控件和进行加载我的图片,但是我发现每次使用的时候,仅仅是static控件变成图片的大小了,而在控件中却是没有图片显示。换了几次显示的方法都空有框架。也怀疑是图片的格式问题,换了几次图片。
后面我就想会不会是后面的程序把它刷没了,我就在OnPaint中进行绘图,一运行成功显示了,终于找到原因,后面顺便附上渣代码。本人渣渣新手,写日志以提醒自己,如有错误,欢迎指教
void CMy61TestDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文

	SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

	// 使图标在工作区矩形中居中
	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;

	// 绘制图标
	dc.DrawIcon(x, y, m_hIcon);
}
else
{
	CDialog::OnPaint();
}
int cx,cy;
CRect rect;
CImage image;
image.Load(_T(&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值