概述
用以下例子,说明如何在VC++6的对话框中添加一个图片按钮。
先给出运行的效果截图,图A为对话框最初加载,图B为鼠标单击时的效果。
图一,初加载对话框
图二,鼠标左键单击的效果
工程名为“TT”
此工程为基于对话框的,所以新建工程时,选择MFC AppWizard(exe)->基于对话框。
工程中有一个默认对话框,其ID为“IDD_TT_DIALOG”,其上有默认的“确定”“取消”按钮,在上面加一个按钮,ID就用默认的“IDC_BUTTON1”。
单击“样式”选项卡,修改其属性:
“所有者绘制”与“位图”前的复选框必须打勾。
接下来制作两个图标,分别对应按钮的两种状态,一是初始状态,二是单击状态。
从网上搜索两个图片,一般为jpg格式,先另保存为bmp,然后用PS进行处理,
将图片的模式改为索引模式,颜色为256,因为超过256将不能用VC++的图片编辑器加载。
将两个图片引入工程中,ID都采用默认的吧。
在对话框类中添加成员变量,类型为CBitmapButton ,变量名为m_BitmapBtn,全局变量或局部变量均可。
在对话框类的DoDataExchange函数中添加代码,DDX_Control( pDX, IDC_BUTTON1, m_BitmapBtn );
在对话框类的初始化函数中添加代码,m_BitmapBtn.LoadBitmaps(IDB_BITMAP1,IDB_BITMAP2);
编译后运行,即成功。
以下给出代码片段供参考。
void CTTDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control( pDX, IDC_BUTTON1, m_BitmapBtn );//这句是我加的
//{{AFX_DATA_MAP(CTTDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BOOL CTTDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
m_BitmapBtn.LoadBitmaps(IDB_BITMAP1,IDB_BITMAP2);//这句是我加的
return TRUE; // return TRUE unless you set the focus to a control
}
最后
以上就是害羞小蝴蝶为你收集整理的VC++6.0 一个简单的图片按钮示例的全部内容,希望文章能够帮你解决VC++6.0 一个简单的图片按钮示例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复