上一页 1 ··· 7 8 9 10 11 12 下一页
摘要: UpdateData在线程中出错的解决办法2009年12月3日 虚幻 发表评论 阅读评论 最近在写一个监视程序,需要定时查看共享内存中的各个值。于是在MFC中,首先开了一个线程,用的是boost的timer,每隔1秒读取共享内存中的值,另外一个线程通过调用UpdateData(FALSE)将值显示在界面上。但是在我调试的时候发现,UpdateData一直报错。最后查了下,还是线程的问题,在线程中,不能直接用UpdateData来更新数值。解决的办法,应该自己定义一个消息,将UpdateData(FALSE)替换为SendMessage(WM_UPDATEDATA, FALSE)就可以了。具体的 阅读全文
posted @ 2010-08-09 21:39 JarvisChu 阅读(332) 评论(0) 推荐(0) 编辑
摘要: MFC剪切板应用 将数据COPY到剪切板原理:1:OpenClipboard() 打开剪切板2:EmptyClipboard() 清空剪切板,让当前进程拥有剪切板3:GlobalAlloc() 分配全局堆内存4:GlobalLock() 锁定内存并返回内存首地址5:strcpy() 给内存赋值6:GlobalUnlock() 解锁内存7:SetClipboardData() 设置到剪切板8:CloseClipboard() 关闭剪切板void CClipboardDlg::OnBnClickedButton2(){if(OpenClipboard())//打开剪切板{ Empty... 阅读全文
posted @ 2010-08-09 19:14 JarvisChu 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 一、压缩文件我们的程序要用到了zip压缩,就需要自己将几个zip相关文件加入到工程中zlib.h zconf.h zlib.lib 这些可以自己上网下载 http://d.download.csdn.net/down/2344459/mryeze在程序中要将 两个.h文件 add to project。然后声明引入lib#include "zlib.h"//压缩文件相关#include "zconf.h"#pragma comment(lib,"zlib.lib") 这些工作只是为了使程序中的关键函数compress 能够使用之后就写 阅读全文
posted @ 2010-08-07 17:17 JarvisChu 阅读(1019) 评论(0) 推荐(0) 编辑
摘要: 1. 利用Mutex 互斥对象#include <iostream.h>#include <windows.h>DWORD WINAPI Fun1Proc( LPVOID lpParameter );DWORD WINAPI Fun2Proc( LPVOID lpParameter );int tickets = 100;HANDLE hMutex; //互斥对象int main(){ HANDLE hThread1,hThread2; hThread1 = CreateThread(NULL,0,Fun1Proc,NULL,0,NULL); hThread2 = Cr 阅读全文
posted @ 2010-08-06 16:34 JarvisChu 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 转自 Maalvin 的一次论坛回帖要想知道PeekMessage()和GetMessage()的区别,最简单的办法是在窗口函数拦截WM_PAINT的时候加一个永久循环,像while(TRUE){},循环体中可以输出文本或图形。这时如果你使用GetMessage(),恐怕就会遇到麻烦,你的程序会什么都不做,如果鼠标的光标恰好在窗口,你会发现它不是通常的箭头光标,而是沙漏--这意味着这个永久循环应占用了该程序的所有CPU资源,无法处理其他消息,比如,你无法结束这个程序,也无法最小化。如果这个时候,你用PeekMessage()替换GetMessage(),将处理WM_PAINT的代码写成一个单独 阅读全文
posted @ 2010-08-06 11:44 JarvisChu 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 一、播放系统的消息声音 BOOL WINAPI MessageBeep( __in UINT uType); MSDN 中对这个函数的说明是:播放一个波形文件(也就是wav格式),每一个声音类型的波形声音在注册表中有一个条目(entry)指定.MessageBeep(MB_OK);Sleep(3000);MessageBeep(MB_ICONWARNING);Sleep(3000);MessageBeep(MB_ICONSTOP);Sleep(3000);MessageBeep(MB_ICONERROR);Sleep(3000);MessageBeep(MB_ICONEXCLAMAT... 阅读全文
posted @ 2010-08-03 19:46 JarvisChu 阅读(10389) 评论(0) 推荐(0) 编辑
摘要: 从网上淘了一段 文件加密的程序,看完之后,明白了它所谓的文件加密,其实原理相当简单:即是按字节 或 按位 读取一个要加密的文件中的数据,然后与我们自己输入的密码做一些 算法操作,将新的数据写入到新文件中,这个新文件就是我们的加密后的文件。 于是我就自己设计了一个简单的加密算法,用它实现了文件的加密,附带着写了一个解密算法。希望供大家参考#include<stdio.h> #include<stdlib.h> #include<string.h> void encfile(char *in_filename,char *pwd,char *out_filena 阅读全文
posted @ 2010-08-03 17:25 JarvisChu 阅读(1411) 评论(0) 推荐(0) 编辑
摘要: 一、 从路径中 提取扩展名CString path("C:/ForVcTest/diary.txt");CString ext = path.Mid(path.ReverseFind('.')+1);AfxMessageBox(ext); 解析:1. CString::Mid CString Mid(int nFirst) const;CString Mid(int nFirst,int nCount) const; nCount代表要提取的字符数,nFirst代表要提取的开始位置 2. CString::CString::ReverseFind int R 阅读全文
posted @ 2010-08-03 15:36 JarvisChu 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 上一篇博文中已经提到了CFileFind类,并且用它实现了删除任意文件夹,此处不再对其赘述。 在实现文件复制过程时,一个问题i是我纠结了许久,CFileFind 类的成员函数 GetFilePath()与GetFileName(),其实很好理解的两个函数,一个是获得文件的路径,一个是获得文件的名字。但我却在理解上犯了一个错误,就是文件路径究竟包不包含文件名字,如有文件C:/Test/1.txt ,那么它的路径和名称分别是什么?我理解成了,路径:C:/Test 名称1.txt ,我按照我的理解编写这个复制功能的实现代码,老师出错,最后我才发现,原来 路径是包含文件名称的 ,即上面的文件 路径即. 阅读全文
posted @ 2010-08-03 13:00 JarvisChu 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 准备工作: 在开始之前,我们需要弄清出一下东东,当然,你也可以知其然而不知其所以然,会用就好。 1. MFC 自定义消息的过程(详见后文)2. BOOL Shell_NotifyIcon( DWORD dwMessage, PNOTIFYICONDATA pnid); API 函数(详见后文)3. NOTIFYICONDATA 结构体(详见后文)概念简介:(您可以跳过此步骤)1. MFC 自定义消息的过程 第一步:定义消息。 #define WM_JarvisChu(WM_USER+1) 在.cpp文件中添加 第二步:在类头文件的AFX_MSG块中说明消息处理函数: afx_msg L... 阅读全文
posted @ 2010-08-01 19:19 JarvisChu 阅读(255) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 下一页