用MFC怎么给dialog 换背景 刚上班,第一次接触MFC,公司就让我做个app,全部自己做。。我要疯了,完全不会菜鸟。请大家多指教。首先第一个问题,怎么把我现在做的对话框换成我要的背景呢 。貌似是在resouce里面添加bitmap,然后在打上code,但是我import了以后各种添加不了。望指导,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void CFiveChessClientDlg::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(); } CDC* pDC = GetDC(); CBitmap bmp1,bmp2,bk; CDC memdc; memdc.CreateCompatibleDC(pDC); bmp1.LoadBitmap(IDB_WHITE); bmp2.LoadBitmap(IDB_BLACK); bk.LoadBitmap(IDB_CHESSBOARD); memdc.SelectObject(&bk); pDC->BitBlt(0,0,663,664,&memdc,0,0,SRCCOPY); DrawChessboard(); if (m_IsWin) { CPen pen(PS_SOLID,2,RGB(255,0,0)); pDC->SelectObject(&pen); pDC->MoveTo(m_Startpt); pDC->LineTo(m_Endpt); } for (int m=0; m<row; m++) { for (int n=0; n<col; n++) { if (m_NodeList[m][n].m_Color == ncWHITE) { memdc.SelectObject(&bmp1); pDC->BitBlt(m_NodeList[m][n].m_Point.x-18,m_NodeList[m][n].m_Point.y-18, 36,36,&memdc,0,0,SRCCOPY); } else if (m_NodeList[m][n].m_Color == ncBLACK) { memdc.SelectObject(&bmp2); pDC->BitBlt(m_NodeList[m][n].m_Point.x-18 ,m_NodeList[m][n].m_Point.y-18, 36,36,&memdc,0,0,SRCCOPY); } } } bk.DeleteObject(); ReleaseDC(&memdc);} OnPaint函数中贴图即可StretchBlt() MFC完全没用接触过?框架还是挺烦人的,建议快速充电,孙鑫的 VC++深入详解 还有视频教程,结合看,这样会快一点,不然真的无从下手 谢谢回复。我看到有bmp1,还有bmp2这是引导3张图吗??我不是很懂。感觉是cpen在画~不好意思耽误你时间,能解释下吗? http://bbs.csdn.net/topics/390345172去看看这个帖子,看看里面提供的下载齐不齐 我生成的dll文件需要另外一个lib文件支持,怎样才能把这个lib包含到这个dll里? SFTP客户端 练习题 100 分 一个自定义类的问题 不用MFC Appwizard 能否建立ODBC数据库连接?谢谢先! 字符串转化成数字的问题 我写的程序360报告是木马 Help,help!高分求教 如何编程实现分辨系统是NT还是2000? kernel32.dll 出错是为什么呢? mfc 视频截图可以保存在硬盘上了,怎样按保存的时候在指定区域显示出来。 mfc文件读写问题
{
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();
}
CDC* pDC = GetDC();
CBitmap bmp1,bmp2,bk;
CDC memdc;
memdc.CreateCompatibleDC(pDC);
bmp1.LoadBitmap(IDB_WHITE);
bmp2.LoadBitmap(IDB_BLACK);
bk.LoadBitmap(IDB_CHESSBOARD);
memdc.SelectObject(&bk);
pDC->BitBlt(0,0,663,664,&memdc,0,0,SRCCOPY);
DrawChessboard();
if (m_IsWin)
{
CPen pen(PS_SOLID,2,RGB(255,0,0));
pDC->SelectObject(&pen);
pDC->MoveTo(m_Startpt);
pDC->LineTo(m_Endpt);
}
for (int m=0; m<row; m++)
{
for (int n=0; n<col; n++)
{
if (m_NodeList[m][n].m_Color == ncWHITE)
{
memdc.SelectObject(&bmp1);
pDC->BitBlt(m_NodeList[m][n].m_Point.x-18,m_NodeList[m][n].m_Point.y-18,
36,36,&memdc,0,0,SRCCOPY);
}
else if (m_NodeList[m][n].m_Color == ncBLACK)
{
memdc.SelectObject(&bmp2);
pDC->BitBlt(m_NodeList[m][n].m_Point.x-18 ,m_NodeList[m][n].m_Point.y-18,
36,36,&memdc,0,0,SRCCOPY);
}
}
}
bk.DeleteObject();
ReleaseDC(&memdc);
}
谢谢回复。我看到有bmp1,还有bmp2这是引导3张图吗??我不是很懂。感觉是cpen在画~不好意思耽误你时间,能解释下吗?
去看看这个帖子,看看里面提供的下载齐不齐