自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (5)
  • 收藏
  • 关注

转载 使用skin++后如何利用GetMenu获取菜单指针

编写了一个单文档程序,并且利用skin++进行了换肤,结果发现在mainFrame中通过GetMenu函数获取到的菜单指针为空,后来经过不断地查找资料获得了在使用skin++后获取主菜单指针的方法:添加WM_INITMENUPOPUP消息响应函数,如下:[cpp] view plaincopyprint?afx_msg void OnInitMenuPopup(  

2013-10-23 16:54:31 668

转载 以图片的形式存储单文档中的内容

存储指定的控件大小/*以图片的形式存储*/void CChartView::OnButtonSavep() { // TODO: Add your control notification handler code here CClientDC SHDC(this);//取得客户区内存DC CPaintDC   dc(this); CDC memDC; CRect

2013-08-23 14:49:37 500

转载 MFC中CenterWindow()函数的模拟,对话框居中显示

void CenterWindow(HWND hWnd){    HWND hParentOrOwner;    RECT rc, rc2;    int    x,y;    if((hParentOrOwner=GetParent(hWnd))==NULL)    {        SystemParametersInfo(SPI_GETWORKAREA,0,&

2013-08-14 14:54:22 1681

转载 多线程

临界区临界区是一种最简单的同步对象,它只可以在同一进程内部使用。它的作用是保证只有一个线程可以申请到该对象void InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection );产生临界区void DeleteCriticalSection(LPCRITICA

2013-08-06 14:16:22 457

转载 Debug 和 Release 编译方式的本质区别

Debug 和 Release 编译方式的本质区别    Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。    Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,

2013-08-05 17:07:19 441

原创 VIew背景色的设置

在消息函数中设置背景色。 BOOL CDiag::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default CBrush backBrush(RGB(0,0,0)); CBrush* pOldBrush = pDC->SelectObject(&backB

2013-07-18 17:05:51 556

原创 Invalidate的使用

void CDiag::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default if (0 == nIDEvent) {   //只刷新设备图像,不刷新背景图像  Invalidate(FALSE); } 在定时器中使用Invalidate(

2013-07-18 17:04:38 619

转载 vc 线程创建关闭

★两套API :OS API vs CRT API  本来照例要先介绍线程的几种死法,但是考虑到很多Windows程序员经常混淆线程API,搞不清楚到底该用哪个。所以先来说一下两套线程API的问题。  首先,Windows操作系统本身提供了线程的创建函数CreateThread 和销毁函数ExitThread 。其中的CreateThread 用于创建线程,ExitThread 用于在线程

2013-07-11 10:31:39 475

转载 PostMessage

PostMessage功能说明PostMessage将消息投递到进程的消息队列,不会等待进程处理消息完毕就返回,PostMessage所投递的消息会被进程所调用的GetMessage或者PeekMessage函数所检索。PostMessage对消息的投递行为属于异步发送,即发送消息而不必等待消息被处理之后再返回。PostMessage在投递消息时,系统根据hWnd参数来判断所属进程而投递,

2013-07-11 10:30:43 673

转载 SendMessage

SendMessage功能说明该函数发送消息时,系统会调用指定窗口(hWnd)的事件发布函数,获取所发消息,等待窗口事件发布函数对该消息处理完毕,SnedMessage函数才能返回。如果指定窗口为广播窗口(HWND_BROADCAST),则消息接收对象就是所在系统的所有顶层窗口,而SendMessage不能为所有窗口之子窗口发送消息。SendMessage发送消息为同步发送,必须要等待接收

2013-07-11 10:29:47 840

转载 WaitMessage

功能说明当一个线程的消息队列中没有消息存在时,WaitMessage函数会使该线程中断并处于等待状态,同时把控制权交给其它线程,直到被中断的那个线程的消息队列中有了新的消息为止。 函数原型BOOL WaitMessage(VOID 参数无。 返回值如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。 备注    在线程已经调用某个函数来检

2013-07-11 10:27:29 1254

转载 消息的概念

消息概念消息就是在事件驱动模式下,事件发布函数和具体功能执行函数(或者代码段)之间的调用协议,调用协议的执行表现为窗口事件发布函数跟具体功能执行函数(或者代码段)之间的选择关系。在Windows系统下(下面所述均为Windows系统),对计算机外设的操作,例如当用户敲击键盘键、点击鼠标、热插拔USB盘等,系统都认为外设发生了事件,于是系统调用专职函数就把这些事件进行收集,形成现场信息,赋值

2013-07-11 10:26:29 1378 1

转载 Win32消息检索

在Win32模式下,消息传递的主要函数有:PostMessage、SendMessage、GetMessage、PeekMessage和WaitMessage。其中PostMessage和SendMessage是消息的投递和发送函数,而GetMessage、PeekMessage和WaitMessage是消息的接收函数。在VC中进行Win32编程时,要经常遇到到一段代码如下:     // 主

2013-07-11 10:25:33 391

转载 BroadcastSystemMessage、BroadcastSystemMessageEx

BroadcastSystemMessage、BroadcastSystemMessageEx功能说明广播特定消息给特定的接收器,接收器可以是应用程序、或者是安装的驱动器、网络驱动器、系统级设备驱动器、或这些系统组件的任何组合。常见于系统将一条系统级消息广播给系统中所有的活动窗口,例如:系统检测到有USB盘插拔、有光盘放入光驱、或者检测出新硬件等,系统就使用BroadcastSystemM

2013-07-11 10:24:38 737

转载 GetMessage

GetMessage功能说明WinCE下:该函数从呼叫进程的消息队列中检索消息,并且将所检索到的消息放入到一个指定的结构体(即MSG结构)中;Win32下:该函数从呼叫进程的消息队列中检索消息,如果被检索到的消息为可分派消息,则该函数就分派该消息,如果被检索到的消息为不可分派消息,则GetMessage返回非正值,导致消息循环的结束。例如可分派的消息有:WM_PAINT、WM_SIZE

2013-07-11 10:23:56 615

转载 PeekMessage

PeekMessage功能说明WinCE/Win32:该函数从进程消息队列中检索一个消息,并将该消息(如果存在的话)赋值给指定的消息结构。跟GetMessage不同之处在于:PeekMessage不会等待消息,而是不间断地访问消息队列,不管消息队列的目前状态如何。PeekMessage在检索应用程序的消息队列时,如果其中有消息就将其放入lpMsg(如下所示的函数原型的声明中)所指的结构

2013-07-11 10:23:10 593

转载 try{} catch(…){}

try{} catch(…){}以前都是用try{} catch(…){}来捕获C++中一些意想不到的异常, 今天看了Winhack的帖子才知道,这种方法在VC中其实是靠不住的。例如下面的代码:try { BYTE* pch ; pch = ( BYTE* )00001234 ;   //给予一个非法地址   *pch = 6 ; //对非法地址赋值,会造成Access

2013-07-11 10:22:02 349

原创 试图执行系统不支持的操作,问题

当执行程序时,出现“试图执行系统不支持的操作”对话框时,肯定是在Create时,句柄与宏不对应。MonitorSeletM与IDD_DIALOG_AZLM_MONITOR_S不对应MonitorSeletM->Create(IDD_DIALOG_AZLM_MONITOR_S,NULL);

2013-07-10 10:43:42 2892

原创 DEBUG下的afxwin2.inl的错误

release模式下没有问题。debug模式下运行会出现问题,但单步调试不会出现问题。提示见图片,然后崩溃。 提示在afxwin2.inl的41行。对应位置代码如下C/C++ code?1{ ASSERT(::IsWindow(m_hWnd)); return ::PostMessage(m_hWnd, m

2013-07-04 17:20:24 4636 1

转载 contain remnants of that class,VC++中怎样彻底删除一个由ClassWizard生成的类

今天遇到一个问题,给对话框添加新类时,发现这样一个报错:contain remnants of that class. 原因在于这个对话框我之前添加个类,但基类弄错,就删掉源文件,重新添加,接着就出现这样的问题,开始我还以为是clw文件还保留有类的纪录,所以我就删掉这个文件重新编译,发现还是这个问题,查询了一下资料,发现原因是我之前的类浏览文件还在vc窗口打开,一查,果然是这样,关闭这个浏览文件,

2013-07-03 08:45:39 1399

原创 'XXXXXXXX' : is not a member of '`global namespace''

//设置菜单栏背景颜色 ::MENUINFO  lpcmi;                        //::必须写不然无法识别 编写以上代码编译时会提示错误 MENUINFO : is not a member of '`global namespace'' 在头文件stdafx.h"中增加以下代码即可。#define WINVER 0x0510  //WI

2013-06-21 09:11:20 1948

转载 C++ 拷贝构造函数 赋值构造函数

C++ 拷贝构造函数 赋值构造函数拷贝构造函数和赋值构造函数的异同由于并非所有的对象都会使用拷贝构造函数和赋值函数,程序员可能对这两个函数有些轻视。请先记住以下的警告,在阅读正文时就会多心:如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝”的方式自动生成缺省的函数。倘若类中含有指针变量,那么这两个缺省的函数就隐含了错误。以类String 的两个对象a,b 为例,假设a.m_data

2013-06-03 11:30:01 728

转载 C++ 的构造/析构/赋值/拷贝函数比较

1.引言:构造函数、析构函数与赋值函数是每个类最基本的函数。每个类只有一个析构函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)和多个赋值函数(除了同类的赋值以外,还有其他的赋值方法)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A产生四个缺省的函数,如A(void); // 缺省的无参数构造函数A(const A &a); // 缺省的拷贝构造

2013-06-03 11:23:03 356

转载 C++拷贝构造函数(深拷贝,浅拷贝)

C++拷贝构造函数(深拷贝,浅拷贝)对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#include iostream>using namespace std;class CExample {pri

2013-06-03 11:14:50 312

转载 VC执行EXE方法

一、执行exe方法一SHELLEXECUTEINFO ShExecinfo={};ShExecinfo.cbSize=sizeof(SHELLEXECUTEINFO);ShExecinfo.fMask=SEE_MASK_NOCLOSEPROCESS;ShExecinfo.hwnd=NULL;ShExecinfo.lpVerb=NULL;ShExecinfo.lpFile=_

2013-05-28 09:02:58 784

转载 在RichEdit中实现超链接

在RichEdit中实现超链接   首先在Form上放置一个RichEdit。在窗体的构造函数中添加以下代码:__fastcall TMainForm::TMainForm(TComponent* Owner)         : TForm(Owner){     unsigned mask = SendMessag

2013-05-27 15:51:40 792

转载 在对话框上创建视图的方法总结

之前有网友问我在对话框上如何创建视图,晚上总结了一些方法。在VS 2005上创建一个基于对话框的工程:CreateView。然后新建一个视图类:CMyView,派生自CView。然后在对话框类CCreateViewDlg上定义一个视图类指针: [cpp] view plaincopyprint?CMyView *m_pView;  CMy

2013-05-27 09:46:45 455

原创 FindWindow,GetActiveWindow函数用法

函数功能:该函数获得一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数不查找子窗口。在查找时不区分大小写。    函数型:HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName);    参数:    IpClassName :指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如

2013-05-24 09:08:56 5206

转载 为视图窗口添加滚动条

修改继承基类1.首先要确定Document的大小,比如400×450.可以将其大小存储在Document类中,也可以直接去设置 2.在代码中把public:C××View:CView中的CView改为CScrollView,以及消息映射中的CView都改掉。如果你怕出错可以将C××View.cpp和C××View.h中的CView都用查找替换为CScrollView。

2013-05-22 17:26:15 742

转载 单文档初始化就最大化问题

方法1:BOOL   CMainFrame::PreCreateWindow(CREATESTRUCT&   cs)     {       if(   !CFrameWnd::PreCreateWindow(cs)   )     return   FALSE;     //   TODO:   Modify   the   Window   class   or   sty

2013-05-22 15:58:28 397

原创 可调整大小的对话框

1,在对话框属性里增加最大最小选项。2,在OnInitDialog函数里增加 ModifyStyle(0, WS_THICKFRAME);可以在边框拖动改变大小。

2013-05-17 13:57:14 579

转载 Format错误

问题:我用Format时,它总提示我错误void __cdecl CString::Format(const unsigned short *,...)' : cannot convert parameter 1 from 'char [3]' to 'const unsigned short *' 回答:CString str;int n;n=10;str.For

2013-05-17 09:09:53 897

原创 如何关闭v刹6.0中的资源文件

如何在工作区(vc6.0)打开*.rc文件?(打开后双击资源就会出现This file is already open in an editor) 解决方法:)~找到那个rc文件,然后关闭它,再次在resource file中双击打开就可以了!即:rc文件可以从window菜单列表中将用文本方式打开的,rc 文件关闭就可以. 就是在VC6.0界面的菜单项,文件-

2013-05-17 09:06:20 578

转载 RichEdit的用法总结

richedit 常见使用问题一.常见问题a.可以编译,不能执行的在需要在相应的对话框中加上InitInstance(void)函数中添加AfxInitRichEdit();b.升级默认的Riched版本(默认的有一些bug),如可在InitInstance中添加LoadLibrary("RICHED20.DLL")最后注意 FreeLibrary如果是

2013-05-15 14:31:44 719

转载 richedit实现超链接

刚在做小飞鸽的文件传送,要在richeidt上提示:XXX向你发送了XX文件,是 否接收,是和否都要使用超链接,贴个代码吧: [cpp] view plaincopyprint?int nTotalLen = m_EidtRecod.GetWindowTextLength();  m_EidtRecod.SetSel(nTotalLen, nTotalLen);

2013-05-15 14:28:21 1019

转载 VC中鼠标经过按钮弹出功能提示(TIPS)

在VC中,也常常为一些图片按钮添加一些功能提示。下面讲解实现过程:该功能的实现主要是用CToolTipCtrl类。该类在VC  msdn中有详细说明。首先在对话框的头文件中加入初始化语句:public:下,加入:CToolTipCtrl    m_Mytip;然后在初始化对话框函数中加入:m_Mytip.Create(this);  m_Mytip.AddTool( Get

2013-05-15 14:26:27 768

转载 Rich Edit控件

1,我在一个对话框里使用了Rich Edit控件后,对话框就不能显示了,换成一般的Edit控件可以正常显示,这到底是为什么啊(不信可以试试,这个问题害的我调试了好久),请问怎么解决?还有,如何实现自动换行后设定行宽,就象qq聊天时的那样,一行到头就自动换行?原因:1,如果是在对话框中使用Rich Edit控件,就必须在对话框显示之前调用AfxInitRichEdit(),要初始化在InitIn

2013-05-14 14:49:05 3055

疯狂VC技巧集.zip

疯狂VC技巧,很实用,很全面

2008-08-19

srm阅读器.zip

可以支持srm文件格式

2008-08-19

源代码查找汉字工具.rar

源代码查找汉字工具.rar,可以找出程序中所有的汉字

2008-08-19

串口监视工具

串口监视工具,可以监视串口进行设备调试

2008-08-19

以太网监视工具

以太网监视工具,支持TCP,UDP

2008-08-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除