Windows MFC
dongfangyu
流浪在广州
展开
-
禁止程序多开,并将原程序带到前台
禁止程序多开,并将原程序带到前台 CString strMutexName = "MySingleInstance"; HANDLE hMutex = CreateMutex(NULL,FALSE,strMutexName); if ( hMutex ) { if ( ERROR_ALREADY_EXISTS == ::GetLastError() ) {//如果已有先前的实原创 2009-07-29 11:10:00 · 627 阅读 · 0 评论 -
VC中外部符号错误的解决
VC中外部符号错误的解决解决外部符号错误:_main,_WinMain@16,__beginthreadex 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmtd.lib(crt0.obj) : error LNK2001: unr原创 2009-09-22 16:26:00 · 2763 阅读 · 0 评论 -
vc文件另存和提取
1另存:void CMPARTDlg::OnMenuBsetting() { CFileDialog dlg(FALSE, "txt", filepath, OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY, "文本文件(*.ini)|*.ini||", this); if (dlg.DoModal() == IDOK) { // 实现存盘原创 2009-09-22 14:14:00 · 1203 阅读 · 1 评论 -
改变光标形状
1.重载OnSetCursor HCURSOR hcursor; BOOL CT_20Dlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { // TODO: Add your message handler code here and/or call default SetCursor(hcursor);原创 2009-10-13 15:18:00 · 1261 阅读 · 0 评论 -
CRectTracker类的使用方法及其静态库下CRectTracker无法显示鼠标光标解决方案
一 使用方法1 定义成员变量 CRectTracker m_RectTracker;2 构造函数设置样式 m_RectTracker.m_nStyle = CRectTracker::resizeOutside|CRectTracker::solidLine; m_RectTracker.m_nHandleSize = 6; m_RectTracker.m_原创 2009-10-15 13:36:00 · 782 阅读 · 1 评论 -
图形处理---位图、图标和光标
图形处理---位图、图标和光标关键字: cbitmap, icon, cursor 1.位图 例1 编写一个应用程序MyBMP,程序运行后在客户区显示一幅BMP位图 [编程说明与实现] 利用MFC AppWizard应用程序向导创建一个单文档应用程序MyBMP。执行Insert|Resource命令,插入一个BMP位图资源。利用资源编辑器原创 2009-10-13 13:40:00 · 1897 阅读 · 0 评论 -
程序切换CTabCtrl
void CGameScoreDlg::SwitchToPage(int idx){ m_tabMyTabCtrl.SetCurSel(idx); NMHDR nm; nm.hwndFrom = m_tabMyTabCtrl.m_hWnd; nm.code=TCN_SELCHANGE; SendMessage(WM_NOTIFY,IDC_TAB,(LPARAM)&n原创 2009-10-26 13:47:00 · 834 阅读 · 0 评论 -
VC++大杂烩
VC++大杂烩 1. 如何获取系统日期CTime tm = CTime :: GetCurrentTime();CString strTime = tm.Format(_TEXT(“%Y-%M-%d %H:%M:%S));MessageBox(strTime); 2. 动态分配二维数组int **array;array =原创 2009-11-11 21:22:00 · 749 阅读 · 0 评论 -
CSTATIC 图标更换解决方案
ShowPic(1, IDB_CLOSE_BITMAP); void CMComDlg::ShowPic(int type, int ID){ CStatic* pPic = NULL; if (type == 1) { pPic = (CStatic*)GetDlgItem(IDC_STATIC_PIC1); } else { pPic = (CStatic*)GetDlg原创 2009-11-11 14:07:00 · 719 阅读 · 0 评论 -
介绍VC6.0的18个实用小技巧
1.检测程序中的括号是否匹配把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号2.查看一个宏(或变量、函数)的宏定义把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键菜单中的Go To Defition Of …),如果没有建立Browse files,会出现提示对话框,确定,然后就会原创 2009-11-18 15:52:00 · 996 阅读 · 0 评论 -
Windows Hook 易核心编程勾子基本理念
前言 以前我非常沉迷入黑客,每每看着高手们发到网上的攻击检测程序心中那个羡慕啊,要是那天我也能写出这样的程序该多好啊可是,我也就只有羡慕的份,谁叫自己不懂英语呢,又没有中文的编程语言直到有一天,我在一家报纸杂志上看到关于易语言的消息. ...... 现在看到论坛上有好多人都埋怨易语言,说这不好,那不好,其实不然易语言还是一个成长中的小树,当然不能和一些早以成长多年的大树相比. 但是有一句俗话不是说转载 2010-01-29 23:35:00 · 1127 阅读 · 0 评论 -
IOCP
IOCP全称I/O Completion Port,中文译为I/O完成端口。IOCP是一个异步I/O的API,它可以高效地将I/O事件通知给应用程序。与使用select()或是其它异步方法不同的是,一个套接字[socket]与一个完成端口关联了起来,然后就可继续进行正常的Winsock操作了。然而,当一个事件发生的时候,此完成端口就将被操作系统加入一个队列中。然后应用程序可以对核心层进行查询以得到原创 2010-02-02 20:22:00 · 484 阅读 · 0 评论 -
用多路复用I/O模型实现支持多个客户端的通信服务
引言 多路复用I/O模型是UNIX/LINUX用得的最多的一种I/O模型。这种I/O模型在技术上的实现是包括select()以及FD_XXX的几个宏及常量。在单个进程中支持的客户端数量由FD_SETSIZE决定。Solaris 10和Linux 9.0默认为1024个,Windows 2000是64个。本文用代码给出该I/O模型处理多Client的一种实现。用select开发一个通信服务器转载 2010-02-03 09:41:00 · 780 阅读 · 0 评论 -
结构体中用到了CString类型
<br />结构体中用到了CString类型,那么对这个结构体的操作就会受到一些限制:<br />1. 不能使用sizeof()之类的函数<br />2. 不能使用new来分配结构体内存<br />3. 不能把结构体的实例进行拷贝<br /><br />再补充一下,不能用ZeroMemory()来清空操作原创 2010-07-07 12:13:00 · 2025 阅读 · 2 评论 -
对右键弹出式菜单进行钩选标记
<br /> CPoint pt = point;<br /> ClientToScreen(&pt);<br /> if ( m_MenuDevice.m_hMenu != NULL)<br /> {<br /> m_pSubMenu = m_MenuDevice.GetSubMenu(5);<br /> if(!IsChanModLinkShow)<br /> {<br /> m_pSubMenu->EnableMenuItem (ID_CHANNEL_MOD, MF_BYCOMMAND |原创 2010-08-10 10:37:00 · 692 阅读 · 0 评论 -
there is no source code available for the current location 解决方案
there is no source code available for the current location 解决方案<br />1.首先试最常规的方法:Clean and then rebuild solution,但是没有解决<br />2.进入Tools>Options,选择Debugging>General 却掉 Enable address-level debugging 选项,在去掉 Require source files to exactly match the original v原创 2010-06-17 10:31:00 · 3824 阅读 · 1 评论 -
VC 使用OnCtlColor函数来改变控件颜色
在MFC类库提供了CWnd::OnCtlColor函数,在工作框架的子窗口被重画时将调用该成员函数.因此可以重载WM_CTLCOLOR消息的响应函数.此函数的原型:<br /> afx_msg HBRUSH OnCtlColor(CDC *pDC,CWnd *pWnd,UINT nCtlColor); <br /> 参数nCtlColor用于指定控件的类型,可以是:<br /> .CTLCOLOR_BTN转载 2010-08-25 17:00:00 · 3063 阅读 · 1 评论 -
VC实现线程池
VC实现线程池 这两天在做关于网络蜘蛛的程序,希望可以通过线程池来提高程序的性能,网上搜索了一下,看到这方面的东西还不少,跟大家分享一下!~有许多应用程序创建的线程花费了大量时间在睡眠状态来等待事件的发生。还有一些线程进入睡眠状态后定期被唤醒以轮询工作方式来改变或者更新状态信息。线程池可以让你更有效地使用线程,它为你的应用程序提供一个由系统管理的工作者线程池。至少会有一个线程来监听放到线程池的所有等待操作,当等待操作完成后,线程池中将会有一个工作者线程来执行相应的回调函数。<br /> 你也可以转载 2011-02-17 10:07:00 · 747 阅读 · 0 评论 -
VC/MFC(C++)实现文件拷贝和文件删除等
1、文件拷贝///////////////////////////////////MFC版 文件拷贝/////////////////////////////////void FileCopyTo(CString source, CString destination, CString searchStr, BOOL cover = TRUE){CSt原创 2009-09-22 11:59:00 · 1803 阅读 · 0 评论 -
SQL时间段查询
SQL时间段查询 ACCESS的话 select * from table where date1#2007-8-30# MYSQL的话 select * from table where date12007-3-30 也可以 select * from table where date1 between 2008-1-20 and 2007-3-30 其中date1,date原创 2009-09-28 17:49:00 · 28775 阅读 · 2 评论 -
打开文件对话框与目录选择对话框
打开文件对话框与目录选择对话框 打开文件对话框const char pszFilter[] = _T("EXE File (*.txt)|*.txt|All Files (*.*)|*.*||");CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, pszFilter, this);转载 2009-07-29 10:36:00 · 539 阅读 · 0 评论 -
使窗口透明
#define LWA_COLORKEY 0x00000001 // Use color as the transparency color.#define WS_EX_LAYERED 0x00080000#define LWA_ALPHA 2 // Use bAlpha to determine the opacity of the layertypedef BOOL (WINAP转载 2009-07-29 11:12:00 · 482 阅读 · 0 评论 -
SYSTEMTIME变量进行比较差值得到天数
CTime t1(sys_time1); CTime t2(sys_time2); CTimeSpan ts = t2 - t1; UINT nTotalDays = ts.GetTotalHours() / 24; ———————————————————————————————————————— win32下不支持CTime,win32下代码:——————————————————————————原创 2009-07-31 14:54:00 · 3332 阅读 · 0 评论 -
CTime
1.获得系统时间 CTime time=CTime::GetCurrentTime();2.将时间变作字符串 CString sTime=time.Format("%I:%M %p");//例如 02:12 pm CString sTime=time.Format("%Y-%m-%d");//例如 1988-01-013.用户自定义时间 CString sTime"原创 2009-08-03 10:31:00 · 947 阅读 · 0 评论 -
文字的纵向显示的问题
中国人自古就有自右至左、从上到下书写汉字的习惯。而当我们在自己所编写的应用程序中使用输出函数输出的总是自左至右的横排文字。有没有可能在我们的应用程序中实现竖写汉字的效果呢?笔者偶然发现了一种利用VC实现竖写汉字效果的方法,现在就把它介绍给大家。 Windows系统内置了许多名称以“@”开头的字集,这些字集有一个共同的特点,即其所包含的文字全都是平躺着的(字头朝左,字底朝右)转载 2009-08-05 14:07:00 · 671 阅读 · 0 评论 -
DLL入门浅析(1)——如何建立DLL
初学DLL,结合教程,总结一下自己的所得,希望对DLL初学者们有所帮助。 动态链接库(DLL)是从C语言函数库和Pascal库单元的概念发展而来的。所有的C语言标准库函数都存放在某一函数库中。在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文件中。这种方法同只把函数储存在已编译的OBJ文件中相比更有利于代码的重用。但随着Windows这样的多任务环转载 2009-08-05 18:17:00 · 2029 阅读 · 0 评论 -
Windows消息机制概述
Windows消息机制概述 消息是指什么? 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。 消息本身是作为一个记录传递给应用程序的,这个记录中原创 2009-08-05 18:26:00 · 494 阅读 · 0 评论 -
UpdateData
UpdateData UpdateData() MFC的窗口函数,下面是MSDN的说明; Call this member function to initialize data in a dialog box, or to retrieve and validate dialog data. BOOL UpdateData( BOOL bSaveAndValidate = TRUE转载 2009-08-17 11:58:00 · 518 阅读 · 0 评论 -
把bmp图片的白色区域转化称透明
HBITMAP hbmp, hmask; //图象及掩码句柄 int w, h; //图片宽和高 void Bitmap::Load(char *fn) //加载图片 { DeleteObject(hbmp); //清空句柄 hbmp=(HBITMAP)LoadImage( NULL, fn, //完整文件路径原创 2009-08-19 10:38:00 · 3334 阅读 · 0 评论 -
Seek操作文件
似乎文件指针定位没有seek这个函数,请问你问的是哪种文件指针?如果是FILE的话,那么函数是fseek,例:[CODE] FILE * input_file;...open file...long lSeekPos = 10; //指向的位置fseek(input_file, lSeekPos, SEEK_SET);...[/CODE]如果是MFC的CFile的话那么头文字要大写:Seek,例:原创 2009-08-18 15:46:00 · 6200 阅读 · 0 评论 -
WSAAsyncSelect()
WSAAsyncSelect() 简述: 通知套接口有请求事件发生. #include int PASCAL FAR WSAAsyncSelect ( SOCKET s, HWND hWnd, unsigned int wMsg, long lEvent );转载 2009-08-25 11:33:00 · 563 阅读 · 0 评论 -
TCP服务器接收多个客户端连接
LRESULT CNetDogSDlg::OnXAcceptSocket(WPARAM wParam,LPARAM lParam){ int acc_sin_len; // Accept socket address length SOCKADDR_IN acc_sin; // Accept socket address - internet style SO原创 2009-08-25 12:04:00 · 7294 阅读 · 0 评论 -
用线程函数来访问一个类
用线程函数来访问一个类 用线程函数来访问一个类(即将线程函数做成成员函数的方法)1.先定义一个线程函数(在要访问的类的头文件顶部添加) 如:UINT ThreadFun(LPVOID pParam);2.然后在定义一个线程时将线程函数和一个this绑定,如:(要创建线程的位置添加)CWinThread * pThread=AfxBeginThread( ThreadFun,/原创 2009-08-26 11:10:00 · 701 阅读 · 0 评论 -
CSliderCtrl的用法
1、Slider属性:* GetRange,SetRange函数用于查询和设置滑动条的取值范围,默认为0~100。函数定义形式如下:void GetRange(int &nMin,int &nMax) const;void SetRange(int nMin,int nMax,BOOL bRedrGETaw=FALSE);* GetPos,SetPos函数用于查询和设置滑动条的当前值。函数转载 2009-08-27 15:49:00 · 5417 阅读 · 0 评论 -
用PostMessage或SendMessage发送结构体指针
SendMessage可以随意发送结构体指针。PostMessage则必须注意结构体的生命周期。例如如下发送代码,使用PostMessage: struct _tag_aa { CString s1; char szBuffer[512]; int a; char* szText; };原创 2009-08-27 16:25:00 · 5949 阅读 · 1 评论 -
Trap receiver
// TrapReceiverDlg.cpp : implementation file//#include "stdafx.h"#include "TrapReceiver.h"#include "TrapReceiverDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __原创 2009-09-11 17:00:00 · 3292 阅读 · 2 评论 -
LNK2005:symbol already defined和LNK1169:one or more multiply defined symbols found 解决办法
LNK2005:symbol already defined和LNK1169:one or more multiply defined symbols found 解决办法 许多Visual C++的使用者都碰到过LNK2005:symbol already defined和LNK1169:one or more multiply defined symbols found这样的转载 2009-09-14 12:30:00 · 2046 阅读 · 0 评论 -
Page Heap机制
转---Page Heap机制2009-05-05 21:11提示说堆内存被破坏,有时候这样的错误在比较小的程序里面也许不会对整个程序造成破坏,依然能够继续运行,但是千万不要放过,像这种破坏堆内存的隐藏BUG,说不准哪天就会造成整个软件的crash。另外我要提醒的是,release版本也许什么提示都没有,直接放过了,这是因为在debug下,操作系统用DebugWin32Heap来代替正常的heap分配内存空间。在这个堆上的任何操作,debug的堆管理器会检查堆的数据完整性,如果它发现了一个错误,就会报告一个原创 2011-02-23 11:06:00 · 1449 阅读 · 0 评论