随笔分类 - MFC
摘要:1.窗口上拖一个Edit控件,并将Visible设置为False 2.OnInitDialog为Edit设置父窗口为CListCtrl m_edit.SetParent(&m_lstRecord); 设置父窗口非常关键,因为后续Edit需要MoveWindow,而列表控件GetSubItemRect
阅读全文
摘要:使用WritePrivateProfileString写ini文件,在中文操作系统下写中文,没有问题,在俄文操作系统下,中文乱码。由于工程是Unicode,因此实际调用的是WritePrivateProfileStringW,而非WritePrivateProfileStringA。但是查看ini文
阅读全文
摘要:前段时间,碰到了一个奇怪的事情,我实现了一个读某文件的类,原本这个文件是以二进制写的,读的时候没太在意,将模式少写了一个“b”,变成了文本模式 _tfopen_s(&pFile, m_file, _T("r")) 测试了好些文件都没有问题,直到有一天,一同事反应读取函数有问题,数据被截断了。我看了半
阅读全文
摘要:CFile类的Open函数有CFile::modeNoTruncate模式,该模式是非截断的意思,再配合CFile::modeCreate,意味着如果文件不存在,则创建,如果文件存在,则不会将文件内容清空。当对文件进行追加写入时,有一个小细节,就是打开文件模式中虽然添加了这两种OpenFlag,但是
阅读全文
摘要:#ifdef _UNICODE std::wofstream os; #else std::ofstream os; #endif 请设置: os.imbue(std::locale("chs")); 或存为utf-8: std::locale utf8(std::locale("C"), new
阅读全文
摘要:程序调用CreateProcess总是报非法访问,类似这样调用: BOOL fSuccess = CreateProcess(NULL, command, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi); 调了半天不知道什么原因
阅读全文
摘要:// roptestView.h : CroptestView 类的接口 // #pragma once class CroptestView : public CView { protected: // 仅从序列化创建 CroptestView(); DECLARE_DYNCREATE(Cropt
阅读全文
摘要:ON_NOTIFY(HDN_DIVIDERDBLCLICK, 0, &CXXX::OnHdnDividerdblclickListData) void CXXX::OnHdnDividerdblclickListData(NMHDR *pNMHDR, LRESULT *pResult) { LPNM
阅读全文
摘要:Dialog-Box Item Functions CheckDlgButton Places a check mark next to or removes a check mark from a button control. CheckRadioButton Checks the specif
阅读全文
摘要:1.查一下m_pszAppName是否有被修改 2.看下紧接着是否有这样一句代码: AfxGetModuleState()->m_lpszCurrentAppName = m_pszAppName; 没有的话加上就好。 修改AppName很多人参考MSDN,可MSDN上的例子有缺陷! 原因大概如下:
阅读全文
摘要:做Win32或MFC开发,有不清楚的问题一定记得先查MSDN! 做Win32或MFC开发,有不清楚的问题一定记得先查MSDN! 做Win32或MFC开发,有不清楚的问题一定记得先查MSDN! CEdit控件有个Clear方法,之前我一直以为是清除文本的,有点像SetWindowText(_T("")
阅读全文
摘要:双缓冲说白就是贴图,将数据全部绘制在缓冲兼容DC上,再将兼容DC的数据一次全部绘制在屏幕上。相较直接在DC上绘图,双缓冲是将绘制数据全部输出,而非分步绘制,并且,可以避免Windows刷新背景色避免闪烁问题。示例如下: 双缓冲: //在缓冲区作图,最后将缓冲区数据一次全部拷贝至目标DC void C
阅读全文
摘要:CWnd::SendMessage 将指定的消息发送到此窗口。 LRESULT SendMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0); 参数 message指定要发送的消息。 wParam指定其他消息相关的信息。 lPara
阅读全文
摘要:void GetAllItemData(const CTreeCtrl& tree, HTREEITEM hItem, map<HTREEITEM,DWORD_PTR>& itmData) { if (NULL == hItem) { return ; } itmData.insert(make_p
阅读全文