- 博客(18)
- 收藏
- 关注
原创 VC++关机、重启计算机代码
void CWebBrowserView::OnMenuShutdown(){ // TODO: 在此添加命令处理程序代码 if (AfxMessageBox("确定要关机吗?",MB_YESNO) == IDYES) { HANDLE hToken; TOKEN_PRIVILEGES tkp; // Get a token for this process. if (!O
2015-04-19 13:42:38 1490
原创 c++中的智能指针
当有几个对象 共同用一个资源时,则它们同时指向了这个资源,如果用普通的指针,则在其中一个对象析构时就会将这个共用的资源销毁,有了智能指针就不用担心,它里面有对象计数,代表有几个对象在用它,销毁一个就减1,直到为0,为0时就表示没有对象用这个资源了,就会自动释放资源存储区!
2015-04-16 23:46:04 270
原创 静态链接库、动态链接库与COM组件的区别
1.动态链接库与静态链接库的区别。 1.1 静态链接库作为代码的一部分,在编译时被链接。 1.2 动态链接库有两种使用方式: 一种是静态加载,即在应用程序启动时被加载; 一种是动态加载,即是该动态链接库在被使用时才被应用程序加载。2.动态链接库和COM组件的区别 2.1 动态链接库的表现形式只能是dll[变态该名
2015-04-16 23:31:19 282
原创 CStringArray
CStringArray其实就是一个CString的ARRAY数组。下面是网上找的一个例子,也一块记到这吧 CStringArray as; as.Add("aaaa"); as.Add("bbb"); as.Add("CCC"); as.Add("dddddddddddddd"); int size=as.
2015-04-16 23:10:25 555
转载 MFC读写文件CStdioFile(除此之外还有CFile,CArchive,CMemFile等等)
CStdioFile类的用法(除此之外还有CFile,CArchive,CMemFile等等)。 MFC中使用CStdioFile类封装了C++运行时刻文件流的操作,流文件采用缓冲方式,支持文件模式(/n)和二进制模式(/r/n)文件操作,默认方式为文本模式。 CStdioFile类从CFile类继承,具有如下三个构造函数: 1、CStdioFile():建立一个CStdioFi
2015-04-16 23:08:01 881
原创 获得桌面文件Shell编程
#include #include //记住关键几个函数就可以了int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd ) { IShellFolder *g_psf
2015-04-16 21:22:19 378
原创 什么时候会用到shell编程
windows提供一组API,用来读取windows目录结构以及一些文件的特殊属性,如隐藏模式、文件的路径和系统资源等等信息,这个以前用过一点点比如如何读取目录树,像我的电脑,我的文档,C盘,等等图标,这些都可以通过shellapi来获取
2015-04-16 20:48:10 449
原创 栈的创建myPathStack
myPathStack::myPathStack(){head = (PPATHNODE)malloc(sizeof(PATHNODE));memset(head,0,sizeof(PATHNODE));head->next = NULL;}myPathStack::~myPathStack(){free(head);head = NULL;}P
2015-04-16 17:41:33 322
原创 new delete 是运算符,malloc,free是函数
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于mall
2015-04-16 16:20:25 287
原创 VC实现视图窗口分割
在头文件中加入CSplitterWnd m_wndSplitter;虚函数virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);在实现文件中加入BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContex
2015-04-16 15:55:18 546
转载 OnEraseBkgnd、OnPaint与画面重绘
问题背景:窗体在重绘时,由于过频的刷新会引起闪烁现象——窗体在刷新时,总要有一个擦除原来图象的过程OnEraseBkgnd,它利用背景色填充窗体绘图区,然后在调用新的绘图代码进行重绘,这样一擦一写造成了图象颜色的反差。当WM_PAINT的响应很频繁的时候,这种反差也就越发明显。绘制过程:当窗口整体需要重绘时,系统依次发送WM_NCPAINT、WM_ERASEBKGND、WM_PAINT
2015-04-07 22:53:43 243
转载 ProcessMessageFilter的使用
在对话框程序中,我们经常是利用对话框上的子控件进行命令响应来处理一些事件。如果我们想要让对话框(子控件的父窗口)类来响应我们的按键消息,我们可以通过ClassWizard对WM_KEYDOWN消息进行响应,当程序运行后,我们按下键盘上的按键,但对话框不会有任何的反应。这是因为在对话框程序中,某些特定的消息,例如按键消息,它们被Windows内部的对话框过程处理了(即在基类中
2015-04-07 22:39:57 492
转载 CRectTracker(橡皮筋)类的使用
CRectTracker(俗称“橡皮筋”类)是一个非常有意思的类。你在Windows中,在桌面上用鼠标拖拽,便可以看到一个虚线的矩形框,它便是橡皮筋.它可以用做显示边界,你也可以扽它的八个角用来放大缩小,做框选使用。如何通过编程来实现这种功能呢?这就是CRectTracker类的作用;介绍橡皮筋类前,先介绍其他两个类:(1) Cpoint 类 或Point类,cpoint.x cp
2015-04-07 22:33:23 379
转载 VC 中常见功能函数汇总
(1)如何通过代码获得应用程序主窗口的指针?主窗口的指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2)确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。Ex
2015-04-02 00:09:16 4311
转载 VC 中钩子的使用
该例的钩子都是写在一个DLL中的,和应用程序独立开来的全局钩子。一般情况下,如果要截获鼠标和普通按键,刚可以用下边的方法鼠标:12345678LRESULT CALLBACK MouseProc( int nCode, //
2015-04-01 23:27:45 373
原创 GetAsyncKeyState()用法
GetAsyncKeyState的返回值表示两个内容,一个是最高位bit的值,代表这个键是否被按下;示例:GetAsyncKeyState(VK_LSHIFT)&&ox8000
2015-04-01 23:01:54 2472 1
转载 自绘按钮的实现过程
申明自绘属性进行VM_MESUREITEM事件响应,说明按钮的尺寸进行VM_DRAWITEM消息的重新响应,说明如何绘制按钮首先在vc6中新建工程,选择MFC并且新建dialog工程输入工程名,然后将生成的按钮等删除,重新添加两个按钮。为按钮设置属性选择自绘,就是自己向上贴图在dlg类的对象上添加WM_DRAWITEM属性
2015-03-20 13:32:02 1013
原创 2015/3/13 VC 常用代码
移动客户区时,发消息PostMessage(WM_NCLBUTTONDOWN,HTCAPTION, MAKELPARAM(point.x, point.y));
2015-03-13 13:16:06 250
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人