MFC--修改图标/开机动画/Combo控件

来源:互联网 发布:中国8月进出口数据库 编辑:程序博客网 时间:2024/06/06 05:37

一、修改图标

1.首先将需要的.ico文件放到工程文件夹下的res文件夹中;

2.在资源视图中:Icon--右键--添加资源--ICON--导入--图标文件(.ico)--选择你刚添加的文件

3.在构造函数中修改:m_hIon=AfxGetApp()->LoadIcon(IDI_ICON2添加文件的ID);

        ICO图标制作:http://www.bitbug.net/

二、开机动画

1.制作Bitmap资源中的.bmp类型文件

利用Windows自带的画图工具,将你制作的图片另存为“24位位图.bmp”;

2.MFC添加资源

首先,将.bmp文件放到res文件夹中(例:Test/Test/res);

然后,资源视图--右键--添加资源--Bitmap类型--导入--res中的bmp文件

3.创建一个基于“CWnd”的类:CSplashWnd

4.在SplashWnd.h中

protected:

CBitmap m_bitmap;

public:

virtual BOOL Create();

   在SplashWnd.cpp中:

BOOL CSplashWnd::Create(){if(!m_bitmap.LoadBitmapA(IDB_BITMAP1))return FALSE;BITMAP bm;m_bitmap.GetBitmap(&bm);return CreateEx(0,AfxRegisterWndClass(0,AfxGetApp()->LoadStandardCursor(IDC_ARROW)),NULL,WS_POPUP |WS_VISIBLE,0,0,bm.bmWidth,bm.bmHeight,NULL,NULL);}
5.添加WM_PAINT消息:

void CSplashWnd::OnPaint(){CPaintDC dc(this); // device context for paintingCDC dcimage;if(!dcimage.CreateCompatibleDC(&dc)) return;BITMAP bm;m_bitmap.GetBitmap(&bm);CBitmap *pOldBitmap=dcimage.SelectObject(&m_bitmap);dc.BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dcimage,0,0,SRCCOPY);dcimage.SelectObject(pOldBitmap);}

6.在使用的.cpp文件中,加入#include“SplashWnd.h”

在初始化程序OnInitDialog()中:

///开机画面CSplashWnd *pSplashWindow=new CSplashWnd;pSplashWindow->Create();pSplashWindow->CenterWindow();pSplashWindow->ShowWindow(SW_SHOW);pSplashWindow->UpdateWindow();Sleep(3000);pSplashWindow->DestroyWindow();delete pSplashWindow;

三、Combo-box控件

1.Combo-box控件在使用时,右侧显示“上下按钮”挑选选项,不能将所有选项都显示出来?

答:鼠标指向控件,点击控件右侧向下的小箭头,出现尺寸调节的箭头时,将控件上下的尺寸拉大,运行后就会将所有选项显示出来了。

2.Combobox控件设置为仅能选择不能输入的形式:属性--type--Drop list。(Dropdown类型为既能选择又能输入)

3.常用成员函数:

.InsertString():插入Combo控件子项的内容

.SetCurSel():设置当前选择的子项

例:初始化时:

m_ComboMacBaud.InsertString(0,"4800");m_ComboMacBaud.InsertString(1,"9600");//从0下标开始初始化

m_ComboMacBaud.SetCulSel(1);

.GetCurSel()获取用户选择对应项的下标(从0开始)

.GetLBText(下标):获取对应下标项代表的内容

例:

获取当前Combo控件显示的内容:

CString str_baud;

方法1:

int m_MacBaud=m_ComboMacBaud.GetCurSel();

int len_Baud=m_ComboMacBaud.GetLBTextLen(m_MacBaud);

m_ComboMacBaud.GetLBText(m_MacBaud,str_baud.GetBuffer(len_Baud));

str_baud.ReleaseBuffer();

方法2:

m_ComboMacBaud.GetWindowTextA(str_baud)





0 0