1
模态对话框根据点击按钮进行处理;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
}
载入图标资源
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
在系统菜单中添加一项(窗口左上角图标单击出的菜单)
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
从静态文本框继承一个类,继承类的消息映射
BEGIN_MESSAGE_MAP(CStaticRectangle, CStatic)
//{{AFX_MSG_MAP(CStaticRectangle)
ON_WM_PAINT()
ON_WM_TIMER()
ON_WM_ERASEBKGND()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
2
VC支持自定义资源类型(Custom Resource),
自定义的资源的用途
1.默认的皮肤压缩包或语言包。
2.做为一些病毒/木马程序的寄生方式。
3.合并EXE与它所需要的DLL文件。
4.其它需要;在程序中播放一个AVI动画等,都可以通过将二进制的数据文件作为自定义资源加入到可执行文件中来实现;
添加资源时选择自定义,IDE会为你生成一个新的二进制资源;
FindResource用来在一个指定的模块中定位所指定的资源;
LockResource用来锁定内存中的资源数据块,它的返回值就是要使用的指向资源数据的内存指针;
用SizeofResource来确定资源的尺寸;
3
CButtonST
CButtonST是一个功能最全的CButton派生类。
CButtonST类的一些信息,
作者:Davide Calabro
主页:http://www.softechsoftware.it
CButtonST类主要包括BtnST.h、BtnST.cpp、BCMenu.h和BCMenu.cpp四个文件。如果你打算使用CButtonST的窗口不止一个,那么可以在VC++的Workspace | FileView中导入以上的四个文件之后,然后在SdtAfx.h文件中添加合适的include语句,如#include "BtnST.h"。
在按钮上加入Icon,使Icon和文字同时显示
假设按钮ID为IDC_BUTTON1
1. 添加成员变量
CButtonST m_btn;
2. 添加Icon资源,设其ID设为IDI_ICON1
3. 在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.SetFlat(FALSE);
为达到最好效果,请根据Icon的大小调整按钮的大小。
显示平面按钮
只需要把m_btn.SetFlat(FALSE)语句去掉。
使按钮上的图标可变
假设按钮ID为IDC_BUTTON1
1. 添加成员变量
CButtonST m_btn;
2. 添加两个Icon资源,ID设为IDI_ICON1和IDI_ICON2
IDI_ICON1是普通状态的图标,IDI_ICON2是按下时的图标
3. 在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON2,IDI_ICON1);