![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
vc
happyness44
这个作者很懒,什么都没留下…
展开
-
VC小技巧(1)---禁止同一应用程序同时运行
有时候为了避免不必要的错误,应防止同一应用程序被打开两个实例以下一个函数可以达到此项目的,挺有用的!BOOL C××App::AlreadyRunning(){ BOOL bFound = FALSE; // Try to create a mutex with the apps name HANDLE hMutexOneInstance = ::CreateMutex(NUL原创 2006-10-10 14:17:00 · 1036 阅读 · 0 评论 -
VC中一些保存,读取应用程序数据的方式
经验总结VC中一些常用的保存,读取应用程序数据的方式:1.写入系统分配ini文件(适合少量数据的存取)存: WriteProfileInt Call this member function to write the specified value into the specified section of the applications registry or .INI fil原创 2006-11-23 15:46:00 · 2767 阅读 · 0 评论 -
VC小技巧(10)-----运行后自删除程序
当一个可执行程序exe在执行过程中,程序文件无法删除,这是因为系统将每个正在运行的程序对应的硬盘文件映射到内存,即虚拟内存,要实现自删除,关键一点在程序退出前将程序从内存映射中解放出来,然后再调用文件操作函数删除程序文件!typedef int (WINAPI *PFClose)(LPVOID); OSVERSIONINFO os_info; os_info.dwOSVersionIn原创 2006-11-06 17:23:00 · 903 阅读 · 0 评论 -
VC小技巧(9)-----消息循环重载
当应用程序进行复杂计算或占用很多系统资源的操作时,用户点击程序界面按钮时无法响应,有两种解决方法:计算线程,消息循环重载技术,即在应用程序中处理Windows消息循环。这样既可以在主线程中进行复杂计算以满足实时计算要求,又能即使响应用户输入,随时中止计算!举例如下: while(!m_bStop && iStep iStep++; m_pgProgress.Ste原创 2006-11-06 17:05:00 · 1567 阅读 · 0 评论 -
How add debug information in the VC++ Win32 Release mode
The step list following:1. From the "Build" menu, choose "Configurations".2. Click "Add..." button, VC show "Add Project Configuration" dialog.3. In the "Configuration" item, input "Release Debug Inf原创 2006-11-07 17:44:00 · 1037 阅读 · 0 评论 -
创建进程CreateProcess函数---------《windows核心编程》读书笔记(3)
当一个线程调用CreateProcess时,系统就会创建一个进程内核对象,其初始使用计数是1。该进程内核对象不是进程本身,而是操作系统管理进程时使用的一个较小的数据结构。可以将进程内核对象视为由进程的统计信息组成的一个较小的数据结构。然后,系统为新进程创建一个虚拟地址空间,并将可执行文件或任何必要的D L L文件的代码和数据加载到该进程的地址空间中。然后,系统为新进程的主线程创建一个线程内原创 2006-10-30 12:47:00 · 2547 阅读 · 0 评论 -
Windows应用程序启动方式---------《windows核心编程》读书笔记(2)
进程通常被定义为一个正在运行的程序的实例,它由两个部分组成:• 一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。• 另一个是地址空间,它包含所有可执行模块或D L L模块的代码和数据。它还包含动态内存分配的空间。如线程堆栈和堆分配空间。Windows支持两种类型的应用程序。一种是基于图形用户界面(GUI)的应用程序,另一种是基于控制台原创 2006-10-25 17:18:00 · 940 阅读 · 0 评论 -
VC错误的处理机制-------《windows核心编程》读书笔记(1)
从系统内部来讲,当一个Windows函数检测到一个错误时,它会使用一个称为线程本地存储器(thread-localstorage)的机制。当函数返回时,它的返回值就能指明一个错误已经发生。若要确定这是个什么错误,请调用GetLastError函数:该函数只返回线程的32位错误代码。当你拥有32位错误代码的号码时,必须将该号码转换成更有用的某种对象。WinError.h头文件包含了Mic原创 2006-10-24 18:48:00 · 844 阅读 · 0 评论 -
自制一个小巧的时钟(部分源代码)---VC
这是本人正式参加工作以后(三个月前)接到的第一个编程任务,只是用来测试我的编程能力,完整的是编写一个月历配上时钟,这边只是提供了时钟的程序,虽然有些简陋但是已经有时钟的样子!其实程序本身也没有什么技术含量,不过对于我的意义挺大,故写入我的博客,与大家分享一下!我当时大概用了一个小时吧,编出来挺有成就感的,程序员最大的乐趣也就这么多了! 时钟的关键其实不足获得时间,而在于怎么画那原创 2006-10-13 16:30:00 · 2119 阅读 · 0 评论 -
VC小技巧(7)-----注册表的简单设置和查询函数
注册表记录着软硬件的一些信息对于程序开发者来说,注册表也是一个不错的存放信息的容器!有时候用注册表记录一些软件的重要参数,或者是记录当前某些值,使软件在下次执行时保持当前值。DWORD SetRegistry(char *szRegPort, char *szKey, char *szValue){ char ValueName[128]; HKEY hkPort;原创 2006-10-13 15:51:00 · 897 阅读 · 0 评论 -
VC小技巧(8)-----创建桌面图标
#include m_szGUID ="{9F0DBE59-C479-49c5-951B-2545242FBDF6}"; //设置GUID m_szCmd = "cmd /K dir c://"; //设置命令 m_szIconPath = "F://res//MFC.ico"; //图标文件 m_szDName = "我的图标"; //设置显示的名称//提供两个按钮响应原创 2006-10-20 09:35:00 · 2203 阅读 · 0 评论 -
VC小技巧(4)----画出自己的窗口区域
以下一段代码是用CDC画出的路径设置窗口的区域,在窗口设计上有了更多想象空间,挺有意思的!CDC* pDC; pDC = this->GetDC(); ::BeginPath(pDC->m_hDC); ::SetBkMode(pDC->m_hDC, TRANSPARENT);// ::SetTextColor(pDC->m_hDC,RGB(255,255,255))原创 2006-10-10 15:06:00 · 963 阅读 · 0 评论 -
VC小技巧(3)---右键菜单的使用
平时经常会看到一些软件把一些常用的功能集成在右键菜单中,这样能够是菜单灵活,易用!以下函数完成了弹出式菜单的创建,只要在右键点击的消息响应中调用就能完成想要的右键菜单的功能!void PopupMenu(){ CPoint point; GetCursorPos( & point ); CMenu menuPopup; menuPopup.CreatePopupMenu()原创 2006-10-10 14:52:00 · 930 阅读 · 1 评论 -
VC小技巧(2)-----托盘区图标操作
经常能够看到软件运行后在托盘产生图标 ,其实也就是对结构 NOTIFYICONDATA 的设置再调用Shell_NotifyIcon就能完成 NOTIFYICONDATA notifycd; notifycd.cbSize=sizeof(NOTIFYICONDATA); notifycd.hIcon=AfxGetApp原创 2006-10-10 14:40:00 · 860 阅读 · 0 评论 -
VC小技巧(6)-----单文档多视图实现视图间的切换
在单一文档结构下,可以有多个视图存在,以下代码实现了视图(CFormView为例)间的切换,使用户在一个时间只能看到一个视图,并且能够切换到自己想要的视图。要想看到自己想要的视图,只需为以下函数传递相应视图的ID号!void CMainFrame::SwitchToForm(int nForm){ CView *pOldActiveView=GetActiveView(); CView原创 2006-10-10 16:17:00 · 3789 阅读 · 1 评论 -
VC小技巧(5)----单文档框架下的全屏显示
应用程序有时候需要使框架充满整个屏幕在编程过程中无非就是把标题栏和菜单去掉以下代码即实现此功能全屏显示:void CMainFrame::FullScreen(){ ModifyStyle(WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX,0,0); ModifyStyleEx(WS_EX_CLIENTEDGE,0,0); SetMenu(原创 2006-10-10 16:06:00 · 1385 阅读 · 0 评论 -
VC小技巧(11)-----窗体透明
//======================================= SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE, GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000); HINSTANCE hInst = LoadLibrary("User32.DLL"); //显式加载D原创 2006-11-28 14:18:00 · 991 阅读 · 0 评论