MFC 利用checkbox 做成切换开关按钮

我们在做MFC程序时候经常会一个切换式的按钮,之前我的做法是利用buttion类的一个SetState()函数,但是返现效果不佳。而且容易出现点1按钮,焦点跑到另外一个按钮上去了  。后来看到别人一个程序。我发现他的切换效果做的很好 ,经过看代码发现,他用的控件根本不是buttion控件而是check box 控件。我就很奇怪,如何将check box变成了一个按钮的,经查看代码发现,原来是他将控件的属性------push lisk
 (我的翻译是按下去像  纯字面理解)设置成true  如图

他就会变成一个按钮形状了,这时候 你给他添加控件变量和控件变量的值,在程序里面函数DoDataExchange(CDataExchange* pDX)中会生成
DDX_Control(pDX, IDC_BUTTON1, m_btn_AT);

DDX_Check(pDX, IDC_BUTTON1,  m_Check_AT);在头文件中会定义两个连个变量CButtion m_btn_AT;和BOOL m_Check_AT,  可以修改CButtion 为你重新写的类。然后我们添加按钮的消息响应函数:在消息响应函数中要添加函数UpdataData(true);这个函数会调用DoDataExchange(CDataExchange*
pDX);

void C按钮凹凸效果Dlg::OnBnClickedCheck1()

{

UpdateData(TRUE);

if(m_Checked)

{

m_btn_check.SetWindowText(L"1状态 (开)");

m_btn_check.SetBitmaps(IDB_BITMAP1,RGB(255,255,255));

}

else

{

m_btn_check.SetWindowText(L"0状态 (关)");

m_btn_check.SetBitmaps(IDB_BITMAP1,RGB(255,255,255));

}

}

这样一个切换开关就做好 ,按钮上还可以做上相应图片。哈哈  请大家放心使用 我在vs2005测试用了。

MFC 利用checkbox 做成切换开关按钮

时间: 2024-10-27 12:23:34

MFC 利用checkbox 做成切换开关按钮的相关文章

利用RemoveAllView实现切换窗口

#Region Project Attributes #ApplicationLabel: SwitchingWindow #VersionCode: 20140615 #VersionName: 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: unspecified #CanInstallToExternalStorage: False #En

利用checkbox的到值,并且存到数据库修改的话要显示之前选择的

在前台当然是利用checkbox来得到复选框的语言:{% for language in languages%}<input type="checkbox" name="language" value='{{ language.id }}' >{{ language.name }}{% endfor %}而复选框如果是已经选的在前台就展示的是选择的,那么input的属性就应该有checked 那么就可以通过在前台if来判断language.id跟已经选择

利用 JavaScript 快速切换正体中文和简体中文

一般商业网站都有一个语言的需求,就是为了照顾使用正体中文的国人,会特地提供一个切换到正体中文的选项(或曰"繁体中文").传统做法是在服务端完成的,即通过某些控件或者过滤器转换文本语言.这里笔者介绍一种简单可行的方法,不是在服务端而是利用前端的 JavaScript 就可以切换正体中文. 大概六年前我还专门写过这议题的博文,这篇也是奠基在那篇文章(旧文也是参考了一高手代码)之上,<对 JavaScript 繁简字切换的小改进>.时过境迁,有必要把代码进行更新一下--以前的太稚

PHP利用socket_bind函数切换IP地址采集数据

在利用PHP进行数据采集的过程中,通常会遇到IP被屏蔽或出现验证码的情况:为了能够继续采集,我们需要切换不同的ip,每访问一次,随机切换一个IP.当然也可以通过收集大量代理,通过切换代理的方式进行采集,原理大抵相似.       因为本人在实际工作中遇到这种情况,刚好发生的场景在美国站群的服务器,上面有已经绑定了200多个ip(这种服务器1300元一月),因此可以轻松的利用socket_bind()函数进行出口ip的绑定,只需要随机抽取一个IP进行绑定就可以.           在C#中同样可

有意思的代码--利用系统信号切换日志模式

看到Kite里面的源码,有段代码挺有意思. 上代码先: // SetupSignalHandler listens to signals and toggles the log level to DEBUG // mode when it received a SIGUSR2 signal. Another SIGUSR2 toggles the log // level back to the old level. func (k *Kite) SetupSignalHandler() { c

MFC利用双缓冲刷新绘图

在VC中进行绘图过程处理时,如果图形刷新很快, 经常出现图形闪烁的现象.利用先在内存绘制,然后 拷贝到屏幕的办法可以消除屏幕闪烁,具体的方法是先在内存 中创建一个与设备兼容的内存设备上下文,也就是开辟一快内 存区来作为显示区域,然后在这个内存区进行绘制图形.在绘制完成后利用 BitBlt函数把内存的图形直接拷贝到屏幕上即可. 具体想实现的是: 在Dialog客户区的一个图片控件(IDC_MAP)中绘制几个动态的点,如果不用双缓冲的技术,在屏幕刷新的时候会有闪烁的现象. CRect rect; C

利用checkbox自带属性indeterminate构建含部分选中状态的树状结构

本来上个月就像发的,但是一直忙啊忙的也没时间整理,所以拖到了现在. 好吧上面这句就是废话,我就是感概下.下面是正文. 前段时间在弄一个轻量级的web项目,要构建一个树状结构目录,同时希望能把部分选中的状态给表现出来.项目中只用了jquery,个人也不想再引入一些其他的js框架或者插件,一个是考虑到界面展示的样式效果会不一样,另外就是懒得去研究啦. 话不多说,直接上测试图片和代码. Ps:我代码里还含有一些设置css以及属性等代码,需要参考的朋友请自动忽略.博文结尾处有我当时找到参考的外国网站上的

#OpenCV##MFC#利用MFC和OpenCV通过系统对话框打开和保存图片

打开图片: void CImageProDlg::OnImageopen() { // TODO: 在此添加命令处理程序代码 Invalidate(); CFileDialog dlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_READONLY, TEXT("Supported Types (*.jpg;*.png;*.gif;*.bmp;...)|*.jpg;*.png;*.gif;*.bmp|Tiff(*.ti

利用filter实时切换big5和gb2312,以及gb2312的简繁体

IEEE Spectrum 杂志发布了一年一度的编程语言排行榜,这也是他们发布的第四届编程语言 Top 榜. 据介绍,IEEE Spectrum 的排序是来自 10 个重要线上数据源的综合,例如 Stack Overflow.Twitter.Reddit.IEEE Xplore.GitHub.CareerBuilder 等,对 48 种语言进行排行. 与其他排行榜不同的是,IEEE Spectrum 可以让读者自己选择参数组合时的权重,得到不同的排序结果.考虑到典型的 Spectrum 读者需求