急!!请教VC问题?
请问如何在子对话框中显示图片,除了使用PICTURE控件外,还有什么方法?因为书上教的都是在主界面中显示图片的,都是在ONPAINT()中加代码,但是子对话框是插入的资源,它的类中没有ONPAINT函数,要怎么办?或者使用PICTURE控件,但是图片太大,显示不了图片全部怎么办? 先在资源里Import一张图片,ID为IDB_BITMAP1
***Dlg.h(取决于你的工程名)中增加CBrush m_br;//在public中定义
***Dlg.cpp中
在初始化函数OnInitDialog()中加入:
BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
m_br.CreatePatternBrush(&bmp);
bmp.DeleteObject();
return TRUE;// return TRUEunless you set the focus to a control
}
在打开类向导(不要告诉我你不会,ctrl+w),找到WM_CTLCOLOR消息(注意选择对应的类,不要选错,是C***Dlg),重载得对应函数OnCtlColor(),添加如下:
HBRUSHCTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (pWnd == this)
{
return m_br;
}
return hbr;
}
然后编译运行就可以了. 只要是对话框就能添加ONPAINT函数
可以自己手工添加消息映射
或者按ctrl + w呼出建立类向导,切换到class info页面,将对话框的Message filter改为window
再切回MessageMaps,你就会看到原来被隐藏的消息映射全回来了,随便加吧
页:
[1]