C++/MFC
Snake-Scorpio
这个作者很懒,什么都没留下…
展开
-
ComboBox自绘之编辑框中文本的白色边框的处理
问题:项目需要对源MFC工程中的所有控件的外观进行自绘,在自绘组合框控件时,发现一个比较棘手的问题。组合框中编辑框在获取焦点时,文本会出现一个刺眼的白色边框,如下图。但是自绘函数并没有绘制该边框的代码,这个边框如何去掉呢?解决:由于我的自绘代码已经确定没有绘制这个边框,所以基本确定这是windows系统的杰作。所以考虑直接修改系统配色来隐藏这一个问题。。。无奈的折中的办法。通过逐个实验w...原创 2020-02-05 13:03:58 · 1176 阅读 · 1 评论 -
VC++ 通过INI配置文件,实现多国语言切换界面
1、针对界面控件上的字符,为不同语言做一个INI文件,如:Chinese.ini,English.ini2、新建一个用于初始化界面的函数:void InitLanguage(int nLanguage);//初始化界面语言void CLanguageTestDlg::InitLanguage( int nLanguage ){TIniFile IniFile;if (n转载 2016-05-24 20:14:28 · 1085 阅读 · 0 评论 -
转载-C++静态库与动态库
这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来转载 2016-06-05 18:49:17 · 302 阅读 · 0 评论 -
MFC 菜单自绘
背景:由于项目要求将现有MFC MDI框架的程序作一次界面优化,首要的就是系统菜单的优化。具体要求有菜单项尺寸、菜单背景色,菜单栏背景色等。工作期间深刻体会到了MFC做界面的痛苦,这里把这期间所使用到的自绘的相关知识作个梳理总结,希望对大家有个参考价值。一、要想自绘菜单,首要的就是子类化菜单类,拥有自己的自定义菜单类。也有大神子类化CWnd。。。这应该属于高度定制了,表示驾驭不了,...原创 2016-06-16 20:52:00 · 7466 阅读 · 3 评论 -
数据格式转换
一、char* 转换为 std::string1、直接赋值string str;char *pchars = "hello";str = pchars;2、string::assign参考:std::string::assign 将char*中内容copy到string.char *pChars = "00";string str;str.assign(...原创 2018-04-28 10:31:12 · 334 阅读 · 0 评论 -
MFC自绘相关函数理解
通过重载MFC的相关函数来自定义UI,通常会用到以下几个函数:OnEraseBkgnd、OnCtlColor、OnPaint。通过阅读官方文档,做个总结:1、CWnd::OnEraseBkgnd()调用时机:当CWnd对象需要刷新时,如resized。函数声明://#include <afxwin.h>afx_msg BOOL OnEraseBkgnd( ...原创 2018-04-28 13:45:33 · 302 阅读 · 0 评论 -
MFC控件重绘 背景重叠问题的一解决方法
问题:MFC控件重绘时,会出现原来的背景没有被擦除的情况,新绘制的覆盖在原来的界面上。解决办法:InvalidateRect()。如果使用Invalidate()一般会造成界面闪烁,使用InvalidateRect()效果较好。代码:m_Control.GetWindowRect(&Rect);ScreenToClient(&Rect);InvalidateRect(&a...原创 2019-04-15 16:21:28 · 2267 阅读 · 0 评论