- 博客(16)
- 收藏
- 关注

原创 最近一直在写一些桌面小程序,真郁闷~( ̄▽ ̄)~
最近一直在写一些桌面小程序,包括批量处理XML、TXT,做Word插件(类似于金山快译那样),对专利文献进行自动摘要 等等,这些都集中在字符串的处理上了,感觉就是在重复劳动,没学多少新知识。
2008-02-03 11:14:00
1700
原创 TCHAR、BSTR、_bstr_t等(未完待续)
LPSTR:指向单字节字符串LPWSTR:指向双字节字符串WCHAR:TCHAR:根据环境自动变为char或wchar_t ,常用BSTR:WCHAR*,即BasicString指针,常用_bstr_t:类似于CString的类,常用
2008-03-20 09:22:00
1321
1
原创 数据库(mdb)、表、字段的自动创建,以及如何得到数据库中所有表的名字
首先需要:#pragma warning (disable: 4146)#import "c:Program FilesCommon Filessystemadomsadox.dll"#import "c:Program FilesCommon FilesSystemadomsado15.dll" no_namespace rename("EOF", "adoEOF")
2008-03-04 17:06:00
1815
转载 剪贴板上文本的读取与写入
读取:CString strClipboard;if (OpenClipboard(NULL)) ...{ HANDLE hData = GetClipboardData(CF_TEXT); char * buffer = (char*)GlobalLock(hData); strClipboard = buffer; GlobalUnlock(hDat
2008-03-03 14:50:00
1010
原创 创建可以定时自动关闭的对话框
首先在ResourceView中插入一个新对话框资源,调整好布局后为对话框资源创建一个对话框类(当然是以CDialog为基类了),例如叫CXXDlg。再为CXXDlg添加消息函数:BOOL CXXDlg::OnInitDialog() ...{ CDialog::OnInitDialog(); SetTimer(111,3000,NULL); // 新加
2008-02-27 17:50:00
1508
原创 在窗口的状态条CStatusBar中实时地动态地显示一些文本信息
在处理大规模数据时(例如批处理上万个文本文件),程序运行起来后可能会处于“假死”状态 ,后台在正常运行,但是界面上看却像死机一样,直到最后出现处理完成等信息。这一过程经常让人等的心烦,同时也让人觉得无法检视程序的运行情况。如果在主窗口底端的CStatusBar中(CMainFrame类的一个成员变量m_wndStatusBar)能够显示程序每时每刻所做的处理的一些信息(例如当前处理
2008-02-27 12:30:00
923
原创 写Unicode格式的文本文件时出现乱码的问题
UNICODE文本标志是在文件的开头两个数据应该是0xFF 0xFE 当我们没有写这两个值时看起来就是乱码。实际中,可以这样:CStdioFile f;f.Open(_T("D:/xxx/111.txt"), CFile::modeWrite|CFile::typeBinary); //不使用CFile::typeTextif (f.GetLength()==0) f.Wr
2008-02-25 16:37:00
1042
原创 在RichEdit控件中加入“复制”“粘贴”等功能
RichEdit本身好像不带“剪切”“复制”等功能,所以自己可以派生一个RichEdit的子类,加入这些功能,例如取名“RichEditCtrlEx”。下面是这个类的一些关键成员函数:// 叠加格式void CRichEditCtrlEx::SetFormatRange(int nStart, int nEnd, BOOL bBold, COLORREF clr,COLOR
2008-02-25 16:27:00
7113
1
原创 设置Richedit控件中的字体格式
一、首先定义字体CHARFORMAT cf;ZeroMemory(&cf, sizeof(CHARFORMAT));cf1.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE |CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;cf1.dwEffects = CFE_BOLD; // 粗体(或其他CFE_ITALIC
2008-02-03 10:50:00
7055
原创 VC中输出当前系统时间
嘿嘿,一句话即可:CString strTime = CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S"); 简单吧 ^_^
2008-02-03 10:15:00
892
原创 读写XML文件中的文本--new
一、首先在程序适当的地方加入#include atlbase.h>#import "msxml3.dll"using namespace MSXML2; 二、装载XML文档CoInitialize(NULL); // 初始化COM,初始化当前线程使用什么样的套间//CComPtr //通过智能指针创建解析器实例CComPtrIXMLDOMDocument>
2008-02-01 10:39:00
5809
5
原创 遍历文件夹
// 首先选择文件夹void CXMLtoolDlg::OnBrowseInput() ...{ BROWSEINFO bf; LPITEMIDLIST lpitem; memset(&bf,0,sizeof BROWSEINFO); bf.hwndOwner = this->m_hWnd; bf.lpszTitle = "选择路径
2008-02-01 10:34:00
546
原创 由VC生成DLL,以供VB等调用
一、在XXX.def中加入(假设工程名叫XXX,要输出的函数名叫MyDLLFunc())EXPORTS ; Explicit exports can go here MyDLLFunc 二、在XXX.cpp中写函数的定义// 输入一个字符串,处理后输出extern "C" bool __stdcall EXPORT MyDLLFunc(LPTSTR inpu
2008-02-01 09:24:00
835
原创 在VC中进行计时操作(可精确到毫秒)
DWORD t0, tt; // DWORD = unsigned long//计时开始t0 = GetTickCount(); // 返回“毫秒”//处理过程//...............//...............//计时结束tt = GetTickCount();CString msg;msg.Format("用时 %.3f 秒", (t1-t0)/1000.0);AfxMes
2008-01-29 10:15:00
1053
原创 CMap有关
// 创建一个存储字符串的哈希表,同时使每个字符串都和一个整数相关联CMapCString,LPCTSTR,int,int> MyMap;// 插入字符串(同时可以去重)CString newstr = "xxxx";MyMap.SetAt(newstr, 1);// 如果想在插入同时记录所插入的字符串在CMap中重复的次数int count;if (!MyMap.Lookup(n
2008-01-29 09:58:00
506
原创 数据库读写以及一些SQL语句
// 将某一字段前后加上“;”UPDATE xxxTable SET 同义词 = ;+同义词+; // 查找某字段中不重复项SELECT DISTINCT 字段1 FROM xxTable// 更新字段(其中字段“编号”为数值型,“中药异名”为字符串) CString sqlstr = "SELECT 编号,中药异名 FROM xxxTable"; BSTR sql = s
2008-01-28 15:02:00
698
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人