VC第10讲自定义控件(如更改控件背景颜色、图片、形状等)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
步骤二:新建基于对话框工程,放置一个按钮,可以适当调整大小,设 置其Owner Draw属性为TRUE,右键为按钮添加变量,改变其变量类 型为CBitmapButton,按确定完成
步骤三:导入按钮位图,这里四幅图大小要一致,使用 CBitmapButton::LoadBitmaps装载各种状态的图片,使用 CBitmapButton::SizeToContent函数使按钮适合图片大小。
SND_NOSTOP PlaySound不打断原来的声音播出并立即返回FALSE。 SND_NOWAIT 如果驱动程序正忙则函数就不播放声音并立即返回。
SND_PURGE 停止所有与调用任务有关的声音。若参数pszSound为NULL, 就停止所有的声音,否则,停止pszSound指定的声音。
SND_RESOURCE pszSound参数是WAVE资源的标识符,这时要用到hmod 参数。
SND_SYNC 同步播放声音,在播放完后PlYSTEM 如果是背景窗口,当这个标志被设置,声音是分配到音频会议系 统通知的声音。系统音量控制程序(sndvol)显示音量滑块控制系统通知的声音。 设置该标志将下控制音量滑块。如果没有设置该标志,声音是分配到默认的音 频会议的应用进程。
特殊效果按钮-示例 1 9 0 6
n m_num0.LoadBitmaps(IDB_BITMAP2,IDB_BITMAP1); //载入 n m_num0.SizeToContent(); //使按钮适应图片大小
背景颜色改变
19 0 6
n CPaintDC dc(this); // 用于绘制的设备上下文 n CRect rect; n GetClientRect(&rect);
fdwSound用来指定播放模式,参数如下:
SND_APPLICATION 用应用程序指定的关联来播放声音。
SND_ALIAS pszSound参数指定了注册表或WIN.INI中的系统事件的 别名。SND_ALIAS_ID pszSound参数指定了预定义的声音标识符。
SND_ASYNC 用异步方式播放声音,PlaySound函数在开始播放后立 即返回。
PlaySound(L"F:\\c.wav",NULL,SND_FILENAME | SND_ASYNC);/* 正确*/
错误用法
PlaySound("F:\\c.wav",NULL,SND_FILENAME | SND_ASYNC);/*出 错,提示提示无法将参数从“const char ”转换为“LPCWSTR”。 */
); n CBitmapButton.LoadBitmaps() n 加载按钮图片接受4个参数 n LoadBitmaps(初始化加载图片,按下状态的图片,获取焦点的图片
,正常状态图片);
n SizeToContent(); //使按钮适应图片大小
特殊效果按钮
19 0 6
步骤一:在资源视图,右键“添加资源”,“导入”图片:。
n if (mChangebackgroundFlag) n{ n dc.FillSolidRect(rect, RGB(230, 255, 255));//设置计算器背景 n}
背景音乐播放
19 0 6
PlaySound是windows中用来播放声音的API函数,函数声明如下:
BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound)
背景音乐播放
19 0 6
n /* n 只要调用WIndows API函数PlaySound()就可以了, n 但是,如果您想播放自己在程序中产生的一段音频数据,就不是那么
简单了,需要利用WIndows wave I/O API的几个函数来实现。 n */
n #include "MMSystem.h" //音频设备和声音文件操作函数的声明包 含在mmsystem.h头文件中
n #pragma comment(lib, "winmm.lib")
背景音乐播放
19 0 6
PlaySound((LPCTSTR)IDR_WAVE2, AfxGetInstanceHandle(),SND_RESOURCE|SND_ASYNC);
PlaySound(TEXT("F:\\c.wav"),NULL,SND_FILENAME | SND_ASYNC);/*正确*/
其中pszSound用来指定要播放的文件,可以是资源名或者音乐文件的 路径,若为空(NULL)则停止正在播放的声音。PlaySound只能播放 WAV文件。
hmod一般设置为空(NULL),除非你要指向资源标识符(即 fdwSound被定义为SND_RESOURCE)。
背景音乐播放
19 0 6
SND_FILENAME pszSound参数指定了WAVE文件名。SND_LOOP 重复播放声音,必须与SND_ASYNC标志一块使用。
SND_MEMORY 播放载入到内存中的声音,此时pszSound是指向声 音数据的指针。
背景音乐播放
19 0 6
SND_NODEFAULT 不播放缺省声音,若无此标志,则PlaySound在没找到声 音时会播放缺省声音。
特殊效果按钮
19 0 6
更改按钮背景颜色、图片、形状等
CBitmapButton类
BOOL LoadBitmaps( LPCTSTR lpszBitmapResource, LPCTSTR lpszBitmapResourceSel = NULL, LPCTSTR lpszBitmapResourceFocus = NULL, LPCTSTR lpszBitmapResourceDisabled = NULL
步骤三:导入按钮位图,这里四幅图大小要一致,使用 CBitmapButton::LoadBitmaps装载各种状态的图片,使用 CBitmapButton::SizeToContent函数使按钮适合图片大小。
SND_NOSTOP PlaySound不打断原来的声音播出并立即返回FALSE。 SND_NOWAIT 如果驱动程序正忙则函数就不播放声音并立即返回。
SND_PURGE 停止所有与调用任务有关的声音。若参数pszSound为NULL, 就停止所有的声音,否则,停止pszSound指定的声音。
SND_RESOURCE pszSound参数是WAVE资源的标识符,这时要用到hmod 参数。
SND_SYNC 同步播放声音,在播放完后PlYSTEM 如果是背景窗口,当这个标志被设置,声音是分配到音频会议系 统通知的声音。系统音量控制程序(sndvol)显示音量滑块控制系统通知的声音。 设置该标志将下控制音量滑块。如果没有设置该标志,声音是分配到默认的音 频会议的应用进程。
特殊效果按钮-示例 1 9 0 6
n m_num0.LoadBitmaps(IDB_BITMAP2,IDB_BITMAP1); //载入 n m_num0.SizeToContent(); //使按钮适应图片大小
背景颜色改变
19 0 6
n CPaintDC dc(this); // 用于绘制的设备上下文 n CRect rect; n GetClientRect(&rect);
fdwSound用来指定播放模式,参数如下:
SND_APPLICATION 用应用程序指定的关联来播放声音。
SND_ALIAS pszSound参数指定了注册表或WIN.INI中的系统事件的 别名。SND_ALIAS_ID pszSound参数指定了预定义的声音标识符。
SND_ASYNC 用异步方式播放声音,PlaySound函数在开始播放后立 即返回。
PlaySound(L"F:\\c.wav",NULL,SND_FILENAME | SND_ASYNC);/* 正确*/
错误用法
PlaySound("F:\\c.wav",NULL,SND_FILENAME | SND_ASYNC);/*出 错,提示提示无法将参数从“const char ”转换为“LPCWSTR”。 */
); n CBitmapButton.LoadBitmaps() n 加载按钮图片接受4个参数 n LoadBitmaps(初始化加载图片,按下状态的图片,获取焦点的图片
,正常状态图片);
n SizeToContent(); //使按钮适应图片大小
特殊效果按钮
19 0 6
步骤一:在资源视图,右键“添加资源”,“导入”图片:。
n if (mChangebackgroundFlag) n{ n dc.FillSolidRect(rect, RGB(230, 255, 255));//设置计算器背景 n}
背景音乐播放
19 0 6
PlaySound是windows中用来播放声音的API函数,函数声明如下:
BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound)
背景音乐播放
19 0 6
n /* n 只要调用WIndows API函数PlaySound()就可以了, n 但是,如果您想播放自己在程序中产生的一段音频数据,就不是那么
简单了,需要利用WIndows wave I/O API的几个函数来实现。 n */
n #include "MMSystem.h" //音频设备和声音文件操作函数的声明包 含在mmsystem.h头文件中
n #pragma comment(lib, "winmm.lib")
背景音乐播放
19 0 6
PlaySound((LPCTSTR)IDR_WAVE2, AfxGetInstanceHandle(),SND_RESOURCE|SND_ASYNC);
PlaySound(TEXT("F:\\c.wav"),NULL,SND_FILENAME | SND_ASYNC);/*正确*/
其中pszSound用来指定要播放的文件,可以是资源名或者音乐文件的 路径,若为空(NULL)则停止正在播放的声音。PlaySound只能播放 WAV文件。
hmod一般设置为空(NULL),除非你要指向资源标识符(即 fdwSound被定义为SND_RESOURCE)。
背景音乐播放
19 0 6
SND_FILENAME pszSound参数指定了WAVE文件名。SND_LOOP 重复播放声音,必须与SND_ASYNC标志一块使用。
SND_MEMORY 播放载入到内存中的声音,此时pszSound是指向声 音数据的指针。
背景音乐播放
19 0 6
SND_NODEFAULT 不播放缺省声音,若无此标志,则PlaySound在没找到声 音时会播放缺省声音。
特殊效果按钮
19 0 6
更改按钮背景颜色、图片、形状等
CBitmapButton类
BOOL LoadBitmaps( LPCTSTR lpszBitmapResource, LPCTSTR lpszBitmapResourceSel = NULL, LPCTSTR lpszBitmapResourceFocus = NULL, LPCTSTR lpszBitmapResourceDisabled = NULL