VC++6.0 一个简单的图片按钮示例 VC++ 2008-11-26 17:07:37 阅读621 评论0 字号:大中小 用以下例子,说明如何在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 } 注:在onInitDialog()的retu rn 之前加上 m_BitmapBtn...