一、修改图标
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 painting
CDC 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)