每个月的流量大多贡献给查资料了,学习果然是件烧钱的事情啊(正经脸)
清空手机谷歌浏览器缓存的二十几个网页,也做一个简单的知识回顾。
使用CImage加载PNG的一般方法
- 打开stdafx.h添加
#include<atlimage.h>
; - 定义一个CImage类对象,调用CImage::Load方法装载一个外部图像文件;
- 调用CImage::Draw方法绘制图像。
eg.(待测试)
1 | CRect rc; |
MFC tab控件
- 创建一个对话框,放tab控件,将控件添加变量m_tabCtrl
- 再创建两个对话框,修改属性Border:none,Style:Child
- 在tabDlg中添加两个对话框类变量
1 | CDialog1 m_dlg1; |
- 在tabDlg的OnInitDialog()函数中添加:
1 | CRect rect; |
- 在tabDlg中添加TCN_SELECHANGE消息
1 | void CtabDlg::OnTcnSelchangeTab1(NMHDR *PNMHDR, LRSULT *pResult) |
安全函数
strtok_s
wcstok_s
在MFC对话框中显示html网页
创建对话框时勾选html对话框,添加控件变量m_html;
然后在OnInitDialog()中添加
1 | m_html.Navigate("www.baidu.com"); |
CXImage的使用
另成一篇。
限制只启动一个exe
1 | if(FindWindow(NULL,"caption")!= 0) |
PCE.js
https://jamesfriend.com.au/pce-js/mobile/
MFC复选框
法一:
1 | CButton* pBtn=(CButton*)GetDlgItem(IDC_CHECK1); |
state0 复选框没有被选中
state1 复选框被选中
state==2 不确定(只有button有BS_3STATE或BS_AUTO3STATE style时才可用)
设置状态:
1 | CButton* pBtn=(CButton*)GetDlgItem(IDC_CHECK1); |
法二:
1 | if(BST_CHECKED == IsDlgButtonChecked(IDC_CHECK1)) |
使用BS_AUTOCHECKBOX、BS_AUTORADIOBUTTON、BS_AUTO3STATE、BS_CHECKBOX、BS_RADIOBUTTON或BS_3STATE样式创建的按钮的返回值可以是如下值之一:
BST_CHECKED 按钮被选中
BST_UNCHECKED 按钮未被选中
BST_INDETERMINATE 不确定,按钮灰显(只有button有BS_3STATE或BS_AUTO3STATE style时才可用)
法三:
为控件添加BOOL变量m_delete;
1 | void CTestDlg::DoDataExchange(CDataExchange *pDX) |
关于“不允许指针指向不完整的类类型”问题分析
神贴必看,自从看过后,再也没犯过这个错,我不会说脑海里都是作者满满的嘲讽笑声的
http://m.blog.csdn.net/luna84/article/details/50380186
树节点遍历
1 | Traverse(m_tree, hChild) |
遍历Vector的几种方法
C++11
法一:
1 | for(size_t i=0;i<vec.size();++i) |
法二:
1 | for(auto it = vec.begin();it!=vec.end();++it) |
法三:
1 | for(int i:vec) |
法四:
1 | for_each(vec.begin(),vec.end(),[](int i){ |
表达式的副作用
http://www.cnblogs.com/shiguangshuo/p/5236962.html
理解递归
另成一篇。
屏蔽回车和ESE
1 | BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) |
MFC查找特定后缀文件
法一:
1 | CFileFind findfile; |
法二:
1 | vector<CString> fileList; |
使用WIN32_FIND_DATA好像存在内存释放的问题。
为CDHtmlDialog添加滚动条
初始化中添加以下代码即可。
1 | SetHostFlags(DOCHOSTUIFLAG_NO3DBORDER|DOCHOSTUIFLAG_DIALOG); |
Notepad++ 没有自动补全敲代码好累…