VC编程
IIIIIIIIIIIIIOO
这个作者很懒,什么都没留下…
展开
-
常和异常处理(windows平台)
原文地址: http://crashrpt.sourceforge.net/docs/html/exception_handling.html#getting_exception_contextAbout Exceptions and Exception HandlingAbout Exception当程序遇到一个异常或一个严重的错误时,通常意味着它不能继续正常运行并且转载 2016-02-06 00:11:26 · 1013 阅读 · 0 评论 -
CSplitterWnd的使用
一、关于CSplitterWnd类我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割。 那么我们自己如何创建类似的界面,也实现窗口的任意的分割呢 ?在VC6.0中这就需要使用到CSplitterWnd类。CSplitterWnd看上去像是一种特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充。当窗转载 2013-09-07 00:22:41 · 832 阅读 · 0 评论 -
ShellExecute与ShellExecuteEx的用法
ShellExecute:1.函数功能:你可以给它任何文件的名字,它都能识别出来并打开它。2.函数原型:HINSTANCE ShellExecute(HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,INT nShowCmd);转载 2013-08-13 22:46:12 · 721 阅读 · 0 评论 -
ShellExecute
有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。CreateProcess因为使用复杂,比较少用。 WinExec主要运行EXE文件。如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW); ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。 首先必须引用shell转载 2013-08-13 22:47:24 · 1535 阅读 · 0 评论 -
ShellExecute, WinExec, CreateProcess
ShellExecute, WinExec, CreateProcessShellExecute ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。 有几个API函数都可以实现这些功能,但是在大多数情况下ShellExecute是更多的被使用的,同时它并不是太复杂。 ShellEx转载 2013-08-13 22:44:05 · 897 阅读 · 0 评论 -
MFC状态栏的编程
接下来我们看一下状态栏的编程。分为两类:第一类:提示行,左边上的那一块,主要用来菜单项的命令和工具栏的命令第二类:窗格形式,显示开关的状态,状态指示器。例如键盘Caps LOCK这样的开关的状态状态栏也是在框架类里边定义的CStatusBar m_wndStatusBar; //定义一个状态栏的对象然后呢, 在OnCreate的函数中创建一个状态栏。if (!m转载 2013-08-11 12:02:33 · 1008 阅读 · 0 评论 -
细谈SetButtonInfo函数及其用途
SetButtonInfo用于设置某个按钮,它的接口定义如下:下面是它的几个接口函数说明:void CToolBar::SetButtonInfo(int nIndex, UINT nID, UINT nStyle, int iImage)注意CToolBarCtrl类也有这个函数,但是它们的定义是完全不同的,实际上,CToolBar::SetButtonInfo的代码如下转载 2013-08-09 00:23:25 · 3629 阅读 · 0 评论 -
MFC程序消息处理的顺序
MFC应用程序中处理消息的顺序1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数3.WindowProc() 该函数负责发送消息到OnWndMsg()函转载 2013-08-08 23:55:12 · 629 阅读 · 0 评论 -
MFC中OnDraw与OnPaint的区别
OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。 OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.当视图变得无效时(包括大小的改变,移动,被遮盖等等),Windows发送WM_PAINT消息。该视图的OnPaint 处理函数通转载 2013-08-08 23:55:47 · 815 阅读 · 0 评论 -
MFC工具栏设计
【转】MFC工具栏设计 发现不错的一篇,就转载了!工具栏中包含了一组用于执行命令的按钮,每个按钮都用一个图标来表示。当单击某个按钮时,会产生一个相应的消息,对这个消息的处理就是按钮的功能实现。将菜单中常用的功能放置在工具栏中,这样可以方便用户操作,省去了在级联菜单中一层层查找菜单项的麻烦。6.2.1工具栏类CToolBar在MFC类库中,CToolBar类封转载 2013-08-08 23:48:17 · 1158 阅读 · 0 评论 -
MFC ListControl用法
以下未经说明,listctrl默认view风格为report-------------------------------------------------------------------------------1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显转载 2013-08-07 23:10:24 · 521 阅读 · 0 评论 -
WM_MOUSEMOVE系列消息
原文转自http://hi.baidu.com/tangyi321/blog/item/f0dae1cc1ce28e0401e92833.html wParam 是 功能建组合有Shift,Alt,Ctrl键和鼠标的三个键,每个一位, lParam 是 鼠标的位置信息。窗口过程函数传入的参数lParam包含了鼠标的位置,其中底位为x坐标,高位为y坐标,这些坐标值都是相对于窗转载 2013-06-04 00:00:08 · 4361 阅读 · 0 评论 -
PreTranslateMessage
PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当你需要在MFC之前处理某些消息时,常常要在这里添加代码. MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,我们可以改变MFC的消息控制流程,甚至可以作一个全新的控制流出来。只有穿过消息队转载 2013-05-09 00:32:40 · 716 阅读 · 0 评论 -
透明化窗口SetLayeredWindowAttributes
本文示例工程前言很多文章示范了使用Windows 2000/XP的层次特性来实现窗口的透明化。本文可以通过该特性使任意窗口透明化,即使你没有该程序的源代码。 使用 "WinTrans" 程序你可以选择任意正在运行的程序,用鼠标左键拖拽左上角框内的棒并将它压在该程序的标题栏上,然后放开,则该程序就可以变成透明。你可以调整滑动条的位置来控制透明度。"WinTrans" 有一个非常象转载 2013-05-08 22:17:56 · 812 阅读 · 0 评论 -
内存调试技巧
http://www.ibm.com/developerworks/cn/aix/library/au-memorytechniques.html内存调试技巧本文将带您了解一些良好的和内存相关的编码实践,以将内存错误保持在控制范围内。内存错误是 C 和 C++ 编程的祸根:它们很普遍,认识其严重性已有二十多年,但始终没有彻底解决,它们可能严重影响应用程序,并且很少有开发团队对其制定明确转载 2013-05-04 21:28:32 · 537 阅读 · 0 评论 -
mfc中CImageList的使用
图像列表控件(CImageList)是相同大小图像的一个集合,每个集合中均以0为图像的索引序号基数,(可以把这些图标看成是以数组方式存储的),图像列表通常由大图标或位图构成,其中包含透明位图模式(实际上,所有的再一个图像列表中的图标都被存储在一个屏幕设备的位图中)。可以利用windows API来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像邓操作。图像列表控件提供了控制图像列表额基本方转载 2013-05-02 00:37:38 · 669 阅读 · 0 评论 -
使用Google code + SVN进行多人开发
说到源码管理,CVS,VSS,SVN,TFS大家在公司可能都用的比较多了。但是在公司的环境基本都是在局域网中或者是专线连结到远程服务器来使用。平时自己在家和朋友一些写一些代码的时候都苦于没有代码管理工具,没有网络环境,而不能不把代码传来传去,很是麻烦。不过Google code提供了免费的SVN空间,主要注册了GMAIL,然后就可以使用SVN进行源码管理,和其他人共同开发了。网上有介绍的,不过转载 2013-04-21 23:42:58 · 952 阅读 · 0 评论 -
UTF8 ANSI 相互转换的函数
#include #include LPCSTR AnsiToUtf8(LPCSTR Ansi){ int WLength = MultiByteToWideChar(CP_ACP, 0, Ansi, -1, NULL, 0); LPWSTR pszW = (LPWSTR) _alloca((WLength+1) * sizeof(WCHAR)); MultiByteToWide转载 2013-03-20 22:59:44 · 8187 阅读 · 0 评论 -
MFC VC 中 TreeView 全面解析
(一)树控制的主要功能树控制和视(Tree Control&View)主要用来显示具有一定层次结构的数据项,如资源管理器中的磁盘目录等,以供用户在其中进行各种选择。树控制中的每个数据项包括数据项名称的文本字符串和用于表示该数据项的图像,每个数据项下面均可包含各种子项,整个结构就象目录树一样。对于包含各种子项的数据项,可通过鼠标双击来展开或合拢,这可以通过控制树的不同风格来实现树控制的不同显示形转载 2013-09-12 00:22:19 · 5207 阅读 · 2 评论 -
工具条控制方法
所 谓工具条就是具有位图和分隔符组成的一组命令按钮,位图按钮部分可以是下推按钮、检查盒按钮、无线按 钮等。工具条对象类派生于主窗口架框类CframeWnd或CMDIFrameWnd,其类控制CToolBar::GetToolBarCtrl是 MFC类库中封装的一个成员函数,允许使用类库中提供的一般控制和附加功能,CtoolBar类控制成员控制提供了Windows一般控制的所有功能,然 而,通过调用转载 2013-09-14 00:57:39 · 1580 阅读 · 0 评论 -
WinAPI: SetWindowPos - 改变窗口的位置与状态
//声明:SetWindowPos( hWnd: HWND; {窗口句柄} hWndInsertAfter: HWND; {窗口的 Z 顺序} X, Y: Integer; {位置} cx, cy: Integer; {大小} uFlags: UINT {选项}): BOOL;//hWndInsert转载 2013-09-13 23:12:20 · 2178 阅读 · 0 评论 -
memory prefetch浅析
最近在用vtune分析程序性能瓶颈时,发现一些内存访问的地方竟然成了cpu热点。经过仔细分析,发现这些热点主要是对大数组非连续位置的访问的引起的。比较消耗cpu的原因应该是cache不命中。因为像这样局部性很差的内存访问逻辑,对cache是很不友好的。于是想到了prefetch……x86(以及其他很多体系结构)的CPU提供了prefetch系列指令,用于将指定地址的内存预取到cache转载 2015-07-23 21:21:28 · 15566 阅读 · 3 评论 -
MFC 多线程及线程同步
一、MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的A转载 2015-01-21 23:42:30 · 913 阅读 · 0 评论 -
windows消息机制(MFC)
消息分类与消息队列Windows中,消息使用统一的结构体(MSG)来存放信息,其中message表明消息的具体的类型,而wParam,lParam是其最灵活的两个变量,为不同的消息类型时,存放数据的含义也不一样。time表示产生消息的时间,pt表示产生消息时鼠标的位置。按照类型,Windows将消息分为:(0) 消息ID范围系统定义消息ID范围:[0x0000, 0转载 2014-06-30 00:29:48 · 6410 阅读 · 0 评论 -
CDockablePane使用心得
最近做项目使用到了MFC的CDockablePane进行布局,下面将应用心得以九个例子进行总结如下: 1. CFrameWndEx 在框架类的头文件中定义一个CDockablePane的数组CDockablePane m_Panes[5];// 一个CDockablePane的数组2. CFrameWndEx:: OnCreate() 在Create函数中自动生成转载 2014-06-07 00:21:04 · 615 阅读 · 0 评论 -
#pragma指令用法汇总和解析
#pragma指令用法汇总和解析一. message 参数。message它能够在编译信息输出窗 口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: #pragma message(“消息文本”) 当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。 当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可能都会忘记有没有正确的设置这些转载 2014-02-01 11:36:45 · 7166 阅读 · 1 评论 -
如何实现IE中JS和VC之间的互相调用
脚本语言和编译型语言之间进行通信是通过IDispatch接口来行的,这里我对双接口的理论就不进行讨论,直接看看如何用WTL代码来实现。首先定义如下的一个IDispatch实现: 1 class CExternalDisp: 2 public CComObjectRoot, 3 public IDispatch 4 { 5 public: 6 C转载 2013-12-03 00:40:31 · 1016 阅读 · 0 评论 -
CDockablePane使用心得
最近做项目使用到了MFC的CDockablePane进行布局,下面将应用心得以九个例子进行总结如下: 1. CFrameWndEx 在框架类的头文件中定义一个CDockablePane的数组CDockablePane m_Panes[5];// 一个CDockablePane的数组2. CFrameWndEx:: OnCreate() 在Create函数中自动生成转载 2013-12-09 10:23:52 · 1286 阅读 · 0 评论 -
接口原理与应用
IDispatch接口原理与应用目录:IDispatch接口原理与应用目录:前言:IDispatch接口的定义:创建支持IDispatch接口的COM对象:标准方式调用IDispatch接口的方法:采用ATL智能指针类调用IDispatch接口的方法:使用类COleDispatchDriver调用IDispatch的方法: 前言:尽管com接口是跨语转载 2013-11-29 00:34:39 · 936 阅读 · 0 评论 -
WebBrowser介绍——Javascript与C++互操作
WebBrowser控件是Microsoft提供的一个用于网页浏览的客户端控件,WebBrowser控件的使用相当广泛,例如很多邮件客户端都是使用可编辑的WebBrowser控件作为写邮件的工具,也有很多软件用WebBrowser控件弹出网页,如qq的新闻首页。微软的MFC和.NET都有WebBrowser控件,这两个控件虽然容易上手,不过由于包装的太好,所以很难深入。因此本文介绍的Web转载 2013-11-28 21:49:28 · 747 阅读 · 0 评论 -
轻松实现类VC界面(停靠窗口)
一、实现原理图中两个窗口的实现类是从CControlBar派生出来的,我们并不需要从头到尾实现该类,因为Cristi Posea先生已经为我们实现了一个称为CSizingControlBar的类,而且做得相当完美!我们所要做的便是好好地利用该类,为了尽可能地简洁,笔者将CSizingControlBar类修改了一下并命名为CCoolBar,接下来我们将详细介绍如何利用该类实现我们所需的界面。转载 2013-11-12 01:05:12 · 1767 阅读 · 1 评论 -
RapidXml使用方法
一、写xml 文件[cpp] view plaincopyprint?01.#include 02.#include "rapidxml/rapidxml.hpp" 03.#include "rapidxml/rapidxml_utils.hpp" 04.#include "rapidxml/rapidxml_print.hpp" 05.转载 2013-11-17 13:37:42 · 1068 阅读 · 0 评论 -
C++文件读写详解(ofstream,ifstream,fstream)
在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容:[java] view plaincopyprint?#include ofstream //文件写操作 内存写入存储设备 ifst转载 2013-11-16 19:07:53 · 703 阅读 · 0 评论 -
C++编程命名规范
第一部分:共性规则共有八项。作为指导供成员采纳。【规则1】标识符应简单明了,望文知意。标识符采用英文单词。切忌使用汉语拼音来命名。程序中的英文单词一般不要太复杂,用词应当准确。例如不要把CurrentValue写成NowValue。尽量不要使用单词缩写或首字母缩写。只有当标识符过长时才考虑使用单词缩写。在使用缩写时,不要自创缩写,尽量使用被广泛接受的缩写。【规则2】标识符长转载 2013-10-02 00:15:45 · 897 阅读 · 0 评论 -
(MFC)Vs2010制作Visual Studio风格的停靠侧栏窗口(CDockablePane里嵌套FormView表单视图)
[cpp] view plaincopyprint?关键字:CDockablePane, Visual Studio风格的Gui界面,,CDoackable里嵌套FormView表单视图步骤关键字:CDockablePane, Visual Studio风格的Gui界面,,CDoackable里嵌套FormView表单视图步骤[cpp] view pl转载 2013-09-15 01:08:04 · 3717 阅读 · 0 评论 -
轻松实现类VC界面(窗口停靠)
图是一个类似VC的界面,左边、底下有两个可浮动、可变大小的控制窗口。许多朋友都希望在自己的程序中实现类似的界面,因为此种类型的界面用途很广、通用性很强,所以笔者总结了一下实现的步骤,辑此一文,并提供源代码供大家参考!一、实现原理图中两个窗口的实现类是从CControlBar派生出来的,我们并不需要从头到尾实现该类,因为Cristi Posea先生已经为我们实现了一个称为转载 2013-09-15 01:05:56 · 1492 阅读 · 0 评论 -
VS2008 工具栏CMFCToolBar的使用总结
http://blog.csdn.net/chenjelly/article/details/67184781(一)自定义工具栏自定义工具栏,分两种情况:一是直接添加工具栏,并自己绘制图标;二是,添加工具栏,然后与BMP关联,与VC6.0中的自定义彩色工具栏类似。1、 自绘工具栏1)添加Toolbar 资源,并设置工具条ID,如IDR_TOOLBAR1;编辑工具条,添加相应的项,转载 2013-09-15 11:09:01 · 1606 阅读 · 0 评论 -
置顶窗口SetWindowPos()的用法
SetWindowPos() 函数功能:该函数改变一个子窗口,弹出式窗口式顶层窗口的尺寸,位置和Z序。子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。 函数原型:BOOL SetWindowPos(HWN hWnd,HWND hWndlnsertAfter,int X,int Y,int cx,in转载 2013-09-13 23:18:58 · 23947 阅读 · 1 评论 -
MultiByteToWideChar和WideCharToMultiByte用法详解
1.使用方法详解 在本文开始之处,先简要地说一下何为短字符和宽字符. 所谓的短字符,就是用8bit来表示的字符,典型的应用是ASCII码.而宽字符,顾名思义,就是用16bit表示的字符,典型的有UNICODE.关于windows下的ASCII和UNICODE的更多信息,可以参考这两本经典著作:《windows 程序设计》,《windows 核心编程》.这两本书关于这两种字符都有比较转载 2013-03-20 22:17:30 · 582 阅读 · 0 评论 -
套接字选项和I/O控制命令
套接字一旦建立,通过套接字选项和I/O控制命令对各种属性进行操作,便可对套接字的行为产生影响。有的选项只用于信息的返回,而有的选项则可在应用程序中影响套接字的行为。I / O控制命令肯定会对套接字的行为产生影响。 下 面着重讨论四个Winsock函数:getsockopt、setsocketopt、ioctlsocket和WSAIoctl 。每个函数都有大量命 令。这些I/转载 2013-03-31 21:17:15 · 788 阅读 · 0 评论