1、一、设置背景颜色的三种方法:1、我们知道程序在运行的时候会调用 OnPain函数,那么我们可以在这里设置背景颜色。void CFlipCardsDlg:OnPaint() if (IsIconic()/保持不变else CRect rc;GetClientRect( / 获取客户区CPaintDC dc(this);dc.FillSolidRect( / 填充客户区颜色CDialog:OnPaint(); 2、第二种方法只要一条语句,但是这里要注意这里绘制的颜色是针对程序中所有的对话框(如果是单文档的话,好像不行)SetDialogBkColor(RGB(0,0,255),RGB(255,0,
2、0);/ 前一个 RGB是背景色,后一 RGB是文本颜色该函数放在工程的 APP文件的初始化函数中。3、第三种方法,利用 ClassWizard重载 OnCtlColor(),即 WM_CTLCOLOR消息在要着色的对话框中申明一个变量,CBRUSH m_hbrush;然后在项目的 Dlg类初始化函数中给 m_hbrush赋值。m_brush.CreateSolidBrush(RGB(0, 255, 0);然后在 OnCtlColor(.)返回该画刷就可以了,如下。HBRUSH CFlipCardsDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlCo
3、lor) HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor);/ TODO: Change any attributes of the DC hereswitch (nCtlColor)case CTLCOLOR_DLG:HBRUSH aBrush;aBrush = CreateSolidBrush(RGB(0, 150, 0);hbr = aBrush;break;/ TODO: Return a different brush if the default is not desiredreturn hbr;这样为对话框着色就可以实现了
4、。二、给 MFC添加背景图图片代码:定位到 void CXXXDlg:OnPaint(),在 if().else()中的 else()下添加如下代码:/CDialog:OnPaint();/要禁止这个调用 CPaintDC dc(this); CRect rect; GetClientRect( CDC dcMem; dcMem.CreateCompatibleDC( CBitmap bmpBackground; bmpBackground.LoadBitmap(IDB_BITMAP); /IDB_BITMAP是你自己的图对应的 IDBITMAP bitmap; bmpBackground.G
5、etBitmap( CBitmap *pbmpOld=dcMem.SelectObject( dc.StretchBlt(0,0,rect.Width(),rect.Height(), 三、MFC 中设置背景音乐问题#include #pragma comment( lib, “Winmm.lib“ )PlaySound函数的声明为: BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound); 第一种方法是直接播出声音文件,相应的代码为: PlaySound(“c:win95mediaThe Microsoft Sound.wav
6、“, NULL, SND_FILENAME | SND_ASYNC); 注意参数中的路径使用两个连续的反斜杠转义代表一个反斜杠。第二种方法是把声音文件加入到资源中,然后从资源中播放声音。Visual C+支持 WAVE型资源,用户在资源视图中单击鼠标右键并选择 Import命令,然后在文件选择对话框中选择The Microsoft Sound.wav文件,则该文件就会被加入到 WAVE资源中。假定声音资源的 ID为 IDR_STARTWIN,则下面的调用同样会输出启动声音: PlaySound(LPCTSTR)IDR_STARTWIN, AfxGetInstanceHandle(), SND_
7、RESOURCE | SND_ASYNC); 第三种方法是用 PlaySound播放系统声音,Windows 启动的声音是由 SystemStart定义的系统声音,因此可以用下面的方法播放启动声音: PlaySound(“SystemStart“,NULL,SND_ALIAS|SND_ASYNC); 函数 sndPlaySound的功能与 PlaySound类似,但少了一个参数。函数的声明为: BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound); 除了不能指定资源名字外,参数 lpszSound与 PlaySound的是一样的。参数 fuSound是如何播放声音的标志,可以是SND_ASYNC、SND_LOOP、SND_MEMORY、SND_NODEFAULT、SND_NOSTOP 和 SND_SYNC的组合,这些标志的含义与 PlaySound的一样。 第四种方法:sndPlaySound不能直接播放声音资源。要用该函数播放 WAVE文件,可按下面的方式调用:sndPlaySound(“MYSOUND.WAV”,SND_ASYNC);自己把资源添在 Debug文件夹里。