|
发表于 2017-8-17 13:30:05
|
显示全部楼层
主要就是要定义一个全局变量来表示按钮的状态。
我这边之前做过一个实验,但是我是切换要显示的背景图片,你的话是改变按钮的图片原理应该是一样的,部分代码我贴在下面吧。- case WM_NOTIFY_PARENT:
- Id = WM_GetId(pMsg->hWinSrc);
- NCode = pMsg->Data.v;
- switch(Id)
- {
- case ID_BUTTON_0: // Notifications sent by 'Button'
- switch(NCode)
- {
- case WM_NOTIFICATION_CLICKED:
- break;
- case WM_NOTIFICATION_RELEASED:
- ucBackColor++;
- if(ucBackColor == 2)
- ucBackColor=0;
- result = f_mount(&fs[0],"0:",1);
- switch(ucBackColor)
- {
- case 0:
- hMemJPEG = _ShowJPEG("0:/1.jpg", 0, 0);
- break;
- case 1:
- hMemJPEG = _ShowJPEG("0:/musicplayer.jpg", 0, 0);
- break;
- }
- WM_InvalidateWindow(pMsg->hWin);
- break;
- }
- break;
- }
- break;
- case WM_PAINT:
- GUI_MEMDEV_WriteAt(hMemJPEG, 0, 0);
- break;
复制代码 大概就是这样,我记得button有一个状态是“未按下”时候的。你在那个状态里面进行switch-case的判断就行,主要就是在那里面切换显示,可以用别的方法。
可能还有其他方法可以切换按钮的背景图片,不过我暂时只想到这个。 |
|