- 博客(54)
- 资源 (34)
- 收藏
- 关注
原创 单文档切分窗口实现多视图
当用户需要同时对文当的不同部分进行编辑时,常常会用到切分窗口;这些窗口可以都是相同的视,或者一个窗口为列表视,而另一个为树型视图。应用程序框架有多种方式来表示多视图,切分窗口是其中的方式之一。 一、引用 当用户需要同时对文当的不同部分进行编辑时,常常会用到切分窗口;这些窗口可以都是相同的视,或者一个窗口为列表视,而另一个为树型视图。应用程序框架有多种方式来表示多视图,切分窗口是其中
2012-04-08 23:03:12
908
原创 VC++6.0去掉单文档中的菜单,工具栏,状态栏
一、去掉菜单栏在单文档程序CMainFrame类中找到PreCreateWindow(CREATESTRUCT& cs)函数,按下面加入代码。BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE;// TODO: Modi
2012-04-08 23:00:26
530
原创 mfc中 类获取其他类指针的方法
每个类都有获得其他类指针的一套方法.现归纳如下. 为方便说明,现假设已用app wizard生成了一个SDI应用程序test,包含如下几个类: CTestApp,CTestDoc,CTestView,CMaimFrame1:从视图类获得文档类指针 如前所述,在视图类中需要引用文档类的地方之前,使用如下语句: CTestDoc *pDoc=(CTestDoc *)GetDocument(
2012-04-08 22:56:54
557
原创 单个窗片(Pane)中显示多视图
---- 在MS Windows 中,一个窗口可以分割成若干个子窗口,每一个子窗口称作一个窗片(pane),每个窗片可以独立控制,这给界面设计提供了很大的方便。---- 利用VC 可以很方便地实现分割窗口。分割的方法有两种:动态和静态。动态分割时可以根据用户的需要分割成数目不同的窗片,但所有窗片的属性和父窗口都是一样的;而静态分割的窗片的数目在程序中指定,运行时是固定的,但每个窗片可以有各
2012-04-08 22:50:35
620
原创 单文档多视图的创建
一个单文档界面中存在多个视图,并且可以根据需要进行视图的动态切换,这是当前比较流行的界面风格,它可以满足许多用户在操作和显示方面的需要。这种界面风格的主要代表软件是Outlook Express。下面归纳总结出两种实现方法(这些代码都在VC++ 6.0下调试通过)。方法一:静态创建切换法 步骤描述: 1.在窗口显示之前先将需要切换的所有的视图对象创建好,除首先显示的视图
2012-04-08 22:43:30
505
转载 MFC 多视图之间的通信
之前以为单文档多视图通信,尤其是视图中又包含对话框等等控件的时候,就非得通过文档类做中介,或者只能由视图传给属于自己的对话框控件,实际上只要两行代码就可以在工程的任意地方获取任意视图的指针!单文档多视图之间的通信一、一个视图获取另一个视图的指针 这个问题纠结了整整一天,查了很多资料,最后总算是有结果了总结一下要实现一个视图获取另一个视图的指针有两种方法(1)CMainFra
2012-04-08 22:35:26
782
翻译 启蒙总是从记忆开始
温斯顿无法明确地记得……,。。。。。。记忆的控制与改造。如果一个人连自己曾经的过去,都必须接受一个标准答案,他也就丧失了独立思考的能力。所以启蒙总是从记忆开始,而智慧,则意味着对记忆的盘点。
2012-02-02 17:06:00
426
原创 typedef与define区别
区别1-- #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#define语句中的数字9 写成字母g 预处理也照样带入。 区别2-- t
2012-02-02 16:38:51
310
原创 Visual C++.NET字符串转换
一、BSTR、LPSTR和LPWSTR 在Visual C++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串类型,如BSTR、LPSTR和LPWSTR等。之所以出现类似上述的这些数据类型,是因为不同编程语言之间的数据交换以及对ANSI、Unicode和多字节字符集(MBCS)的支持。 那么什么是BSTR、LPSTR以及LPWSTR呢? BSTR(Basic ST
2012-02-02 16:31:05
405
原创 LPSTR 及LPCSTR与char[] 的转换
LPSTR介绍 LPSTR:一个32位指向字符串的指针,相当于char *;LPCSTR:一个32位指向字符串常量的指针,相当于const char *;LPWSTR:一个32位指向Unicode字符串指针,相当于wchar_t *;LPCWSTR:一个32位指向Unicode字符串常量指针,相当于const wchar_t *; LPCSTR
2012-02-02 16:19:56
3543
转载 如何理解复杂的C/C++ 声明
原作者姓名 Vikram A Punathambekar文章原始出处 http://www.codeproject.com/cpp/complex_declarations.asp 曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。我们将从每天都能碰到的较简单的声
2012-02-02 16:14:23
296
转载 C语言难点分析整理
这篇文章主要是介绍一些在复习C语言的过程中笔者个人认为比较重点的地方,较好的掌握这些重点会使对C的运用更加得心应手。此外会包括一些细节、易错的地方。涉及的主要内容包括:变量的作用域和存储类别、函数、数组、字符串、指针、文件、链表等。一些最基本的概念在此就不多作解释了,仅希望能有只言片语给同是C语言初学者的学习和上机过程提供一点点的帮助。变量作用域和存储类别: 了解了基本的变量类型后
2012-02-02 16:10:09
615
转载 VS2005与VS2008下编译的MPI程序运行出错的解决办法
用VC2008编译的有些MPI程序,拷贝到其他机群结点上,运行时却出现:“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”。一开始以为是没有安装.net Framework 3.5,辛辛苦苦从网上下载下完整包后,安装在目标节点上,运行还是不行。从网上搜索了下,发现一篇好文章,虽然是VS2005的,使用方法一照着做,也解决了2008的同样问题,原文如下:
2012-02-02 16:00:47
1121
转载 MPI编程
1 MPI简介多线程是一种便捷的模型,其中每个线程都可以访问其它线程的存储空间。因此,这种模型只能在共享存储系统之间移植。一般来讲,并行机不一定在各处理器之间共享存储,当面向非共享存储系统开发并行程序时,程序的各部分之间通过来回传递消息的方式通信。要使得消息传递方式可移植,就需要采用标准的消息传递库。这就促成的消息传递接口(Message Passing Interface, MPI)的面世,
2012-02-02 15:53:46
1229
转载 如何:配置和启动 MPI 群集调试程序
使用 MPI 群集调试程序,您可以调试 Windows HPC Server 群集上运行的并行应用程序和通过消息传递界面 (MPI) 通讯的并行应用程序。在 Visual Studio 中,您可以选择群集头节点并指定要纳入调试会话的进程数、为群集调试会话配置高级属性,然后启动调试程序。使用 MPI 群集调试程序的要求 您的开发计算机上必须安装了 Visual Studio 2010
2012-02-02 15:44:12
1399
1
转载 在 Visual Studio 2010 中启动 MPI 群集调试程序
在此操作实例中,您将了解如何在本地计算机和 Microsoft Windows HPC Server 2008 群集上设置和启动 MPI 群集调试程序会话。此操作实例包括使用消息传递界面 (MPI) 和打开多进程 (OpenMP) 应用程序编程界面 (API) 创建应用程序所需的步骤和示例代码。本指南内容: 使用 MPI 群集调试程序的要求在 Visual Studio 2
2012-02-02 15:42:43
831
转载 Visual Studio 2010并行编程及调试诊断功能详解
Visual Studio2010 Beta 1发布后,开发人员从其新特性,新功能中得到了不少的帮助。这里将介绍Visual Studio 2010并行编程方面的改进,较Visual Studio 2008有了极大的提高。每当出现新的编程模型时,开发人员便需要一个用来学习、编写、调试以及优化代码的健壮的工具,以便能更好的利用该模型。由于并行计算在公式中添加了新的变量,对于工具的需求便更为突出。
2012-02-02 15:38:38
751
转载 Visual Studio 2010 Beta1 中的 MPI Cluster Debugger
本文转自微软官方博客http://blogs.technet.com/b/chinahpc/archive/2009/05/19/visual-studio-2010-beta1-mpi-cluster-debugger.aspx。HPC中国研发团队 在Windows HPC中写过MPI程序的朋友们应该用过Visual Studio2
2012-02-02 15:36:22
532
转载 VC++ 6.0下MPICH环境搭建简要说明
本文系转载,原文在http://blog.163.com/ld081055@126/blog/static/11818691520091148151856/,如有需要,自行前往。本文供学习交流用!注:本文档仅供在单机单处理器上进行MPICH 学习实验参考,使用开发编译环境为VC++ 6.0,MPICH版本是MPICH NT 1.2.5,有关多机环境下或是采用其它编译器的配置请自己查询或搜索相关
2012-02-02 15:28:56
766
转载 指向结构体的指针
在C语言中几乎可以创建指向任何类型的指针,包括用户自定义的类型。创建结构体指针是极常见的。下面是一个例子: typedef struct{ char name[21]; char city[21]; char state[3];} Rec;typedef Rec *RecPointer;RecPointer r;r=(RecPointer)malloc(
2012-02-01 16:02:21
416
转载 解开 Windows 下的临界区中的代码死锁
Matt Pietrek和Russ Osterlund 下载本文的代码:CriticalSections.exe (415KB)摘要临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并没有引起太多关注,因而人们未能对其深刻理解。在需要跟踪代码中的多线程处理的性能时,对 Windows 中临界区的深刻理解非常有用。 本文深入研究临界区的原理,以揭示在查找死锁和
2012-02-01 15:55:13
402
转载 多线程编程之临界区模式
临界区模式 Critical Section Pattern 是指在一个共享范围中只让一个线程执行的模式。它是所有其它多线程设计模式的基础,所以我首先来介绍它。把着眼点放在范围上,这个模式叫临界区模式,如果把作眼点放在执行的线程上,这个模式就叫单线程执行模式。 首先我们来玩一个钻山洞的游戏,我 Axman,朋友 Sager,同事 Pentium4.三个人在八角游乐场循环钻山洞(KAO,减肥训
2012-02-01 15:53:39
454
原创 多线程知识点整理
多线程知识点整理基本概念多线程程序在较低的层次上扩展了多任务的概念:一个程序同时执行多个任务,通常,每一个任务称为一个线程,它是线程控制的简称。可以同时运行一个以上线程的程序称为多线程程序。多进程与多线程的区别:每个进程拥有自己的一整套变量,而线程则共享数据。相关接口•Runnable◦ 方法 void run()◦可由Runnable对象构成Thread,不要调用
2012-02-01 14:27:53
276
原创 多线程和多进程的区别
多线程和多进程的区别 一.为何需要多进程(或者多线程),为何需要并发?这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性。我想,只要你不是整天都写那种int main()到 底的代码的人,那么或多或少你会遇到代码响应不够用的情况,也应该有尝过并发编程的甜头。就像一个快餐点的服务员,既要在前台接待客户点餐,又要
2012-02-01 14:27:05
267
原创 多线程的那点儿事
多线程的那点儿事多线程编程是现代软件技术中很重要的一个环节。要弄懂多线程,这就要牵涉到多进程?当然,要了解到多进程,就要涉及到操作系统。不过大家也不要紧张,听我慢慢道来。这其中的环节其实并不复杂。 (1)单CPU下的多线程 在没有出现多核CPU之前,我们的计算资源是唯一的。如果系统中有多个任务要处理的话,那么就需要按照某种规则依次调度这些任务进行处理。什么规则呢?可以是一
2012-02-01 14:26:19
839
原创 Win32 多线程的基本使用
Win32 多线程的基本使用Summary:总结Win32提供的创建多线程相关的API接口和基本的使用框架。Ref:MSDN: http://msdn.microsoft.com/zh-cn/library/y6h8hye8(v=VS.100)Win32多线程的创建方法主要有:(1)CreateThread()(2)_beginthread()&&_beginthr
2012-02-01 14:25:48
327
原创 vc中定时器并非多线程
vc中定时器并非多线程 VC++中timer很容易给人感觉是多线程的。其实不然,他是通过消息触发事件的。。通过SetTimer函数设定定时器后,在规定时间内向消息队列中加入wm_timer消息来触发事件。并且只有该消息返回后才处理下个消息。 可以通过程序来验证。BOOL bThreadEnd = TRUE;UINT ThreadPro(LPVOID pParam);v
2012-02-01 14:25:23
532
原创 SendMessage 和 PostMessage
SendMessage 和 PostMessage1. SendMessage函数要等到消息被处理后才返回 PostMessage 消息发出后马上返回2. PostMessage发向目标窗口的消息一定会进入消息队列 SendMessage向同一线程的窗口发消息,不会进入消息队列, SendMessage向其他线程的窗口发消息,则会进入消息队列,3.
2012-02-01 14:22:48
380
原创 如何干掉多线程
如何干掉多线程干掉多线程的目的是为了干掉锁,干掉争用,减少开发的难度及提高系统的稳定性,可理解性,易维护性。以阶段来划分系统的话,有多种划分方法。比如业务意义上的阶段,或模块意义上的阶段。但是这样的划分总是有点画蛇添足的感觉:计算机并不懂业务,它也不懂模块。它什么都不懂。它懂的只有指令。两种指令:内存指令与IO指令。本来这两者都只是处理器的事情,跟我并没有关系。但是IO指令会将线程挂起
2012-02-01 14:21:19
372
原创 windows多线程编程的经验
windows多线程编程的经验1) 不要在线程函数体内操作MFC控件,不要再线程里面调用UpdateData函数更新用户界面,而应该尽量采用发送消息的方式,在主线程的消息响应函数中操作控件;2)不建议采用SendMessage往主线程发送消息,因为它是同步的,阻塞的,可以考虑采用PostMessage代替;3)线程退出时,尽量不要使用TerminateThread函数,而尽可能
2012-02-01 14:20:45
303
原创 PostMessage函数介绍
PostMessage函数介绍PostMessage(H,WM_SHOWWINDOW,NULL,SW_PARENTCLOSING);ShowWindow(H,SW_HIDE); 函数功能描述:将一个消息放到与指定窗口创建的线程相关的消息队列中,不等线程处理消息就返回。消息队列里的消息通过调用GetMessage或PeekMessage函数而获得。.函数原型: BOOL P
2012-02-01 14:20:13
1085
转载 使用PostThreadMessage 与线程进行大数据量的通讯
PostThreadMessage是一个线程体发送一个消息到指定的线程ID,其原型如下:BOOL PostThreadMessage( DWORD idThread, UINT Msg, WPARAM wParam,
2012-01-23 14:52:15
1014
转载 使用PostThreadMessage传递消息
PostThreadMessage的原型是这样的BOOL PostThreadMessage( DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam);PostThreadMessage可以用于线程之间的异步通讯,因为它不用等待调用者返回,这也许是线程通讯中最简单的一种方法了。但是要注
2012-01-23 14:51:56
360
转载 PostThreadMessage的例子
#include #include #include #include #define UM_MSG1 WM_USER+1#define UM_MSG2 WM_USER+2DWORD WINAPI Thread1(LPVOID para){ DWORD dwThreadId = *(DWORD *)para; DWORD i=0;
2012-01-23 14:51:39
454
转载 并发思想
从性能的角度看,如果没有任务会阻塞,那么在单处理器机器上使用并发就没有任何意义。线程机制分为:协作式和抢占式。Java的线程机制是抢占式的,这表示调度机制会周期性地中断线程,将上下文切换到另一个线程,从而为每个线程都提供时间片,使得每个线程都会分配到数量合理的时间去驱动它的任务。在协作式系统中,每个任务都会自动地放弃控制,这要求程序员要有意识地在每个任务中插入某种类型的让步语句。协作式
2012-01-23 14:50:27
801
转载 工作线程与主线程的通信
首先声明, 这里的工作线程与UI线程是相对的,即没有任何窗口的. 如果需要与主线程或其它辅助线程通讯,有几种方法如事件,消息,信号等,也可以是以上几种方法的综合运用.下面就列出以下3种通讯方法的代码框架 (1)只用消息通讯 1 DWORD ThreadProc(LPVOID lParam) 2 { 3 //创建线程消息队列 4 MSG
2012-01-23 14:49:24
373
转载 线程终止的问题
有两种情况可以使线程结束:控制函数结束或者根本就不允许线程完成,而提前终止它。我们可以想象在WORD中进行后台打印,如果打印结束了,那线程就可以结束了。如果用户中止了打印,那后台打印线程也要终止了。本文将主要介绍对这两种情况的实现,并且介绍如何获得线程的结束代码。对于工作线程,结束它是比较容易的:退出线程函数然后返回一个结束原因的代码就是了。用户可以使用AfxEndThread函数或直接利用r
2012-01-23 14:49:00
288
AVI播放源代码
2012-02-01
10个VC 多线程操作实例源代码
2011-11-08
LabWindows/CVI调用DLL实用例程
2011-11-08
ActiveDAQ Pro组件集中中文帮助
2011-11-08
VC2010实现扩展list控件代码
2012-09-17
VC2010实现扩展list控件
2012-09-17
VC通过ODBC远程连接Oracle数据库(源代码及说明文件)
2012-02-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人