现在位置: 首页 > VC笔记
2014年02月28日 技术学习, 机电与嵌入式 ⁄ 共 1115字 暂无评论 ⁄ 阅读 1,107 次
函数及参数说明(具体参考MSND) HWND HtmlHelp(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD dwData); hwndCaller Specifies the handle of the window calling the HtmlHelp API. If the HtmlHelp API call results in messages being sent from the HTML Help window, they will be sent to this window handle. pszFile Specifies an HTML file, a URL, a compiled HTML file, or a window definition (preceeded...
阅读全文

2014年02月26日 技术学习, 机电与嵌入式 ⁄ 共 1897字 暂无评论 ⁄ 阅读 841 次
一、生成独立可执行的程序(exe文件)步骤 1、安装编译器。可有多种选择,本机安装的是microsoft visual c++ 6.0; 2、设置编译器。在matlab命令行输入mbuild -setup,选择安装的c编译器; 3、调用编译器。输入mcc -m filaname,filaname为要转成exe的m文件; 在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -m filaname; 4、安装MATLAB7\toolbox\compiler\deploy\win32目录...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 4254字 暂无评论 ⁄ 阅读 1,006 次
第20课 钩子与数据库编程 1.Hook简介:作用是拦截某些消息,关键函数是SetWindowsHookEX() 2.示例程序: 1.新建一基于对话框工程,InnerHook,此过程的钩子是只拦截本进程的。 2.在OnInitDialog()中添加代码: g_hWnd=m_hWnd; g_hMouse=SetWindowsHookEx(WH_MOUSE,MouseProc,NULL,GetCurrentThreadId());设置了鼠标钩子 g_hKeyboard=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,NULL,GetCurrentThreadId());设置了键盘钩子 ...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 2245字 暂无评论 ⁄ 阅读 819 次
1.DLL简介,动态库,静态库。动态库节约磁盘空间,静态库体积大。可以用多种语言编写DLL文件。动态库有两种加载方式:隐式调用和动态加裁! 2.新建一个DLL1的dll工程,加入一源文件名为dll1.cpp,加入add和subtract两个函数,注意此时须在函数名前加_declspec(dllexport),并且编译。用dumpbi -exports dll1.dll查看其导出的函数,发现函数名字已经被改成了 ?add@@YAHHH@Z,这种现象叫做名字粉碎,是为了支持函数重载而做的。 3...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 2028字 暂无评论 ⁄ 阅读 951 次
第18课 ActiveX编程(下面X均为ActiveX简称) 1.在VB中调用X控件,添加方法 project->Add components。另外可以用Object Browser来查看控件 2.在VC中创建X控件 1.新建一个X工程名为Clock,注意一个文件中可以包含多个控件。 2.保持缺省设置,完成。注意它生成的三个类,以及相关的接口。 3.运行它。选择TSTCON32.exe作为容器。 4.选择Insert Control,此时我们可以看到,它画了一个椭圆。也可以在VB中测试。 5.删除注册信息。...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 5778字 暂无评论 ⁄ 阅读 818 次
第17课 进程间通信 有四种方法 1.剪贴板 a.创建个ClipBoard的对话框应用程序,加两EditBox和两个Button发送接收。 b.具体代码: 发送端代码: if(OpenClipboard()) { CString str; HANDLE hClip; char *pBuf; EmptyClipboard(); GetDlgItemText(IDC_EDIT_SEND,str); hClip=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1); pBuf=(char*)GlobalLock(hClip);将句柄转换为指针! strcpy(pBuf,str); GlobalUnlock(hClip); SetClipboa...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 2110字 暂无评论 ⁄ 阅读 955 次
1.事件对象:来实现线程的同步。与互斥对象一样均属于内核对象。 当人工重置有信号时,所有线程均得到信号,所以不能设为人工重置。代码就不贴了。 通过创建匿名的事件对象,也可以让一个程序只能运行一个实例。 2.关键代码段实现线程的同步:类似公用电话亭,只有当电话亭里面没人了,其它人才可以再进去打电话。用了4个函数,这种方法比较简单!但缺点是如果使用了多少关键代码码,容易赞成线程的死锁 3.线程死锁,用关键代码...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 2898字 暂无评论 ⁄ 阅读 975 次
1.多线程介绍,略 2.一个简单的多线程程序 MSND中参数[in]和[out]的含义要注意 #i nclude <windows.h> #i nclude <iostream.h> DWORD WINAPI Fun1Proc( LPVOID lpParameter // thread data ); DWORD WINAPI Fun2Proc( LPVOID lpParameter // thread data ); int index=0; int tickets=100; HANDLE hMutex;互斥对象的句柄 void main() { HANDLE hThread1; HANDLE hThread2; hThread1=CreateThread(NULL,0,Fun1Proc...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 3750字 暂无评论 ⁄ 阅读 933 次
1.TCP流式套接字的编程步骤 在使用之前须链接库函数:工程->设置->Link->输入ws2_32.lib,OK! 服务器端程序: 1、加载套接字库 2、创建套接字(socket)。 3、将套接字绑定到一个本地地址和端口上(bind)。 4、将套接字设为监听模式,准备接收客户请求(listen)。 5、等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)。 6、用返回的套接字和客户端进行通信(send/recv...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 1199字 暂无评论 ⁄ 阅读 792 次
1.CArchive在菜单打开保存时的代码 CFile file("1.txt",CFile::modeCreate | CFile::modeWrite); CArchive ar(&file,CArchive::store); int i=4; char ch='a'; float f=1.3f; CString str("http://www.sunxin.org"); ar<<i<<ch<<f<<str;以上是保存,打开略 2.文档-视类结构简介 OnNewDocument在程序启动时被调用,此时可设置文档标题,也可以在String Table的IDR_MAINFRAME的第二个"\"后改变文档的...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 1413字 暂无评论 ⁄ 阅读 905 次
1.常量指针与指针常量的区分 char ch[5]="lisi"; const char *pStr=ch;//const在*之前,表明指针指向的内容为常量,即为常量指针 char * const pStr=ch;//const在*之后,表明指针的地址不能改变,即为指针常量 明白? 2.对文件读写的三种方法 1.C中 FILE *pFile=fopen("1.txt","w"); fwrite("http://www.sunxin.org",1,strlen("http://www.sunxin.org"),pFile); //fseek(pFile,0,SEEK_SET); //fwrite("ftp:",1,strlen("ftp:"),p...
阅读全文
1.修改外观和图标可以在MainFrm中进行,而修改背景和光标只能在View中进行。为什么?因为view的显示挡 在了MainFrame的前面。 a.在MainFrame中 PreCreateWindow()中,在窗口创建之前,用重新注册窗口类的方法,比较麻烦。在PreCreateWindow ()中修改 也可以用简单的方法,用全局函数 //cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW,0,0, // LoadIcon(NULL,IDI_WARNING)); 在窗口创建之后,在OnCreate()中修改 /...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 1117字 暂无评论 ⁄ 阅读 838 次
1.画图: a.创建四个菜单,为其添加消息响应; b.在View中添加m_DrawType,保存绘画类型; c.增加成员变量,m_PtOrigin,当按下鼠标左键时,保存此点; d.在OnLButtonUp中画点,线,矩形,椭圆,别忘记设置成透明画刷 2.为其添加一个设置对话框(线型和线宽) a.创建对话框,为其创建一个新类关联它; b.为其中的线宽关联成员变量; c.在View中增加一个菜单,响应新的对话框; d.添加线型选项设置,将其Group属性选中,并为单选...
阅读全文
1.创建4个菜单,为其添加消息响应,用成员变量保存绘画类型。添加LButtonDown和Up消息。 2.当窗口重绘时,如果想再显示原先画的数据,则需要保存数据。为此创建一个新类来记录绘画类型和两个点。 class CGraph { public: CPoint m_ptOrigin;//起点 CPoint m_ptEnd;//终点 UINT m_nDrawType;//绘画类型 CGraph(); CGraph(UINT m_nDrawType,CPoint m_ptOrigin,CPoint m_ptEnd);//此为构造函数。 virtual ~CGraph(); }; 然后在void...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 2559字 暂无评论 ⁄ 阅读 916 次
1.当对某菜单添加消息响应函数时,4个类的消息响应优先次序分别是:1.View;2.CDOC;3.CMainFrame.4.CWinAPP.为什么?请参阅《深入浅出》 2.消息分类:a;标准消息(以WM_开头的消息,但不包括ON_COMMAND);b;命令消息 ON_COMMAND(IDM_PHONE1, OnPhone1),菜单和工具栏的消息。c.通告消息:按钮,列表框发出的消息。 CCmdTarget只能接受命令消息。而从CCmdTarget派生的CWnd可以接收命令消息,也可以接受标准消息。 3.确定菜单的索...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 2492字 暂无评论 ⁄ 阅读 870 次
1.如果在SDI中要调用对话框 a.先插入一个对话框资源; b.然后在ClassWizards中为其创建一个类。其目的是比较方便为添加按纽和消息响应函数。 c.然后实例化它。在实例化时,必须将其头文件包含进去。 2.创建非模态对话框,注意它不能是局部变量。当 点击非模态对话框的OnOK按纽时,它并没有关闭,而是隐藏了。需要调用destroyWindow(). 3.一个对象只能一个按纽。为什么?因为在Wincore.cpp的628行有代码 ASSERT(pWnd->m_hWnd ...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 674字 暂无评论 ⁄ 阅读 882 次
1.如何改变按纽的字体?在对话框的属性中改变字体的属性即可 2.逃跑按纽的实现 1.从CButton派生一个类,CWeixinBtn 2.将IDC_EDIT1关联成员变量m_btn1,类型为CWeixinBtn,注意要包含头文件。 3.在CWeixinBtn中加一个指针成员变量CWeixinBtn *pWeixinBtn,然后将其地址初始化。 4.在新类中增加鼠标移动的消息处理。 3.属性表单 1.插入属性页资源。Insert->new Resource->Dialog 2.当选择Classwizard菜单时,系统提示是否为创...
阅读全文
1.CWnd::CreateSolidCaret创建插入符,ShowCaret()显示插入符。GetTextMetrics(),获得当前字体的一些信息。CWnd::CreateCaret()创建图象插入符 bitmap.LoadBitmap(IDB_BITMAP1);//此处的bitmap为成员变量!!! CreateCaret(&bitmap); ShowCaret(); TEXTMETRIC tm;//字体结构体 dc.GetTextMetrics(&tm);// m_ptOrigin.y+=tm.tmHeight;//获得字体高度。 2.VC中CString::LoadString(ID号),比较方便。 3.路径层的概念:有...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 3013字 暂无评论 ⁄ 阅读 874 次
1.在单文档中view挡在MainFrame的前面。此时如果编写针对MainFrame的mouseClick事件,将不会有反应。 2.消息响应会在3处修改代码,1处是在头文件中, //{{AFX_MSG(CDrawView) afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT nFlags, CPoint point); afx_msg void OnMouseMove(UINT nFlags, CPoint point); //}}AFX_MSG DECLARE_MESSAGE_MAP() 另一处是cpp文件的begin MessageMap和End...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 969字 暂无评论 ⁄ 阅读 826 次
1.在main或WinMain之前,全局变量已经被分配内存并初始化了。 2.在MFC中在WinMain之前有个theApp全局变量先被构造并被初始化,而由于子类构造函数执行前,其父类的构造函数先被执行,所以CTestApp的父类CWinAPP的构造函数先执行。产生了theApp对象后,在WinMain()中的指针*pThread和*pApp就有了内容。 3.MFC大致流程: CTestApp theApp;//构造全局对象 WinMain() { AfxWinMain();//调用下面的函数 } AfxWinMain() { pThread->...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 707字 暂无评论 ⁄ 阅读 847 次
1.定义结构体和类时别忘记在最后加入";"号!例如Class Point{int x;int y;}; 2.#i nclude <xxx.h>与#i nclude "xxx.h"的区别:<>不查找运行时目录,""查找运行时目录! 3.类的定义中,如果未指明成员类型,则缺省为private.而结构体中则缺省为public. 4.引用:引用经常用在函数的传参上。另外数值交换函数也经常用引用。例 change(int &x,int &y){int temp;temp=x;x=y;y=x}调用时即可以用 int a=3;int b...
阅读全文
2010年05月18日 机电与嵌入式 ⁄ 共 1180字 暂无评论 ⁄ 阅读 795 次
1.MFC生成的C++源文件中都有StdAfx.h,此文件包含了常用的AFX函数的声明,其中有afxwin.h,此文件包含了CRECT,CPoint,CWnd等许多类及其方法的声明。 2.Project->Setting->Debug可以加入命令行参数。 3.在SDK中要加入"windows.h"和stdio.h。因为LoadCursor,MessageBox等函数的声明在这个文件中。 4.创建一个完整的窗口的四个步骤SDK,1设计窗口类,2注册窗口类,3创建窗口,4显示窗口 5.函数名可以代表函数代码的首地址,...
阅读全文
2009年03月30日 计算机视觉 ⁄ 共 1876字 暂无评论 ⁄ 阅读 1,125 次
1, c语言中,结构体struct中不能包括函数的,而在C++中struct中可以包括函数。 2,C++中结构体和类可以通用,区别主要表现在访问控制方面:struct中默认是public,而 class中默认的是private。 3,构造函数最重要的作用是创建对象的本身,C++中每个类可以拥有多个构造函数,但必须至少有一个构造函数,当一个类中没有显式提供任何构造函 数,C++编辑器自动提供一个默认的不带参数的构造函数,这个默认的构造函数只负责构造...
阅读全文
2009年03月30日 计算机视觉 ⁄ 共 4937字 暂无评论 ⁄ 阅读 1,128 次
1,windows程序设计是种事件驱动方式的程序设计,主要基于消息的。当用户需要完成某种功能时,需要调用OS某种支持,然后OS将用户的需要包装成消息,并投入到消息队列中,最后应用程序从消息队列中取走消息并进行响应。 2,消息结构: typedef struct tagMSG { // msg HWND hwnd; //接收消息的窗口句柄。和哪个窗口相关联。 UINT message; //消息标识。消息本身是什么。 WPARAM wParam; //消息的附加信息。具体取决于消息本身...
阅读全文
×