MFC按钮问题 用自己的图片制作1个按下去是一张图 弹起来是另一张图 并且能够重复使用
发布网友
发布时间:2022-04-30 04:57
我来回答
共3个回答
热心网友
时间:2023-10-14 13:49
自绘制按钮吧,采用自绘制按钮的话,你想要什么样的效果都可以做出来,重载DrawItem这个函数,然后自己来定义在鼠标按下后发生什么动作,你可以在其中加入一个静态的变量,用来判断是第几次按下按钮,第一次的话就当作是按下去,第二次点击按钮的时候,就判断为弹起来,这样做就行了。
个人一点建议:初学VC的时候不要把精力放在这样华而不实的东西上面,最主要的是先掌握MFC的基本框架和类之间的关系,否则的话,光学会几个函数怎么用,光知道一些界面设计的方法是不够的,面对MFC生成的代码你会毫无支配能力的
热心网友
时间:2023-10-14 13:49
捕获WM_KEYDOWN
WM_KEYUP消息
热心网友
时间:2023-10-14 13:50
1.用对话框直接做个按钮,然后通过设置setstate来达到效果
但用了这个以后我不知道如何把按钮改为自己的图片
本来想把那个按钮设置成和CBitmapButton一样类型的
但根本无从下手
答:这个问题我没搞懂你在说什么,CBitmapButton本身就能够设置按下,移动的效果,实现图片的更替。
2.用LBUTTONDN消息来通过放置不同图片来达到效果
但我至今还没有办法让单击的时候能显示一张图片
答:给CButton类的一个消息响应(=WM_CTLCOLOR)函数,如下:
HBRUSH CTestBtn::CtlColor(CDC* pDC, UINT nCtlColor)
{
//下面返回一个HBRUSH 图形画刷,而不是NULL,当然LBUTTONDN消息来时,
//控制画刷的变化(如跟换一张图片,或颜色画刷),达到变化效果;
//当然不要忘记忘记LBUTTONDN时更新
return NULL;
}
3,当然楼上说的方法重绘Button是最好的选择,CButtonST就是干的这件事情